[identity profile] lenich.livejournal.com posting in [community profile] useful_faq
Такой вопрос. Имеется английская версия виндовс ХП с русскими региональными установками. При попытке открыть файлы, содержащие в имени буквы типа a, o, u с двумя точками наверху, o перечеркнутое и т.д. программы говорят file not found, хотя в проводнике эти файлы можно копировать, переименовывать, удалять и т.д. Можно что-то сделать чтобы эти файлы запускались?

Date: 2007-11-07 12:42 pm (UTC)
From: [identity profile] roman-pro.livejournal.com
Переименовать... Либо использовать юникодные версии программ (если таковые имеются).

Date: 2007-11-07 12:55 pm (UTC)
From: [identity profile] n0mad-sexhex.livejournal.com
+1

если вопрос почему так происходит — то предоставляемые Windows программные средства (API) крайне неудобны и сложны. В частности, параметры командной строки программа получает как параметр главной функции WinMain. Начиная еще с версии 3.0 этот параметр передается в виде строки символов LPSTR, причем на каждый символ отводится ровно 1 байт памяти. В таком формате, естественно, ни о каком Unicode речи не идет. Если установлена кодовая страница русская, будут поддерживаться русские имена файлов, но не более того. Файловый поток программисту приходится открывать самостоятельно, что, кстати, делать с помощью API неудобно в высшей степени, а имя файла в процедуру открытия передается в виде все той же LPSTR-строки.

Date: 2007-11-07 05:58 pm (UTC)
From: [identity profile] f2065.livejournal.com
Это тупизм языков высокого уровня, а не винды!
Виндовое API у всех функций содержит и юникодный вариант. К примеру получить командную строку - это функция GetCommandLineA() для ANSI и GetCommandLineW() для юникода.

Date: 2007-11-07 08:13 pm (UTC)
From: [identity profile] haviras.livejournal.com
Используйте многозыковую поддержку и различные кодировки. Ставится это чудо с диска винды, в панели управления -языки и стандарты. И будет вам счастье