0CodErr wrote:
....
Также, у нас приложения на путь резервируют 1024 байта(как раз на 1024 символа).
С UTF-8 уже 1024 байта может быть недостаточно для 1024 символов.
....
Странно, я вроде бы встречал 4096 символов в программах в буфере на полное имя файла.
Так, поразбираемся
SysFn70.1 не поддерживает UTF-8, нужно расширять варианты кодировок в ядре.
Буфер для имени для SysFn70.1 не более чем 512 байт
OpenDialog, Filebrowser - не поддерживают многобайтные кодировки
NTFS - м.б.проблема - каждое имя каталога до 256 символов (UTF16), полный путь в сборе 32к
https://msdn.microsoft.com/en-us/library/aa365247.aspx, хотя рекомендуется до Win10 ограничиваться 256 символами на весь путь (260 с именем диска).
FAT32 - 255 в виде символов UCS2
XFS, EXTx - 255 байт
Joliet - 64 символа UCS2
UDF - 255 байт
Итого будут проблемы с длиной имени:
-при массовом применении UTF-8, если массово используются 3-4х-байтовые буквы
-возможно, с NTFS когда символы не помещаются в UCS2 (а может на такие можно честно ругаться и не поддерживать?)
-UDF (DVD диски)
-в ядре с поддержкой кодовых точек UTF16
Вот ответ системы как описать - простите, ваше имя длиной в 250 букв, но оно не влезает?
Т.е не существует константы MAX_PATH
CleverMouse wrote:
Никаких UTF-16. Оно имело смысл лет этак двадцать назад, когда 65536 символов ещё хватало всем, но сейчас у неё нет никаких преимуществ перед UTF-8.
Это UCS2 ограничена 16 бит на символ.