Вариант (*) создает файл с именем "òåñò.txt" (набор букв с диакритическими знаками, похоже на неправильный codepage).
Вариант (**) (который вообще, по идее, компилиться не должен) создает файл с правильным именем "тест.txt".
Проблема в том, что текст приходит из системы в виде имени папки "Мои документы". И вообще, это тупиковый путь. Я хочу понять, в чем на самом деле дело.
?
T_B>Проблема в том, что текст приходит из системы в виде имени папки "Мои документы". И вообще, это тупиковый путь. Я хочу понять, в чем на самом деле дело.
T_B>Спасибо, T_B>Tuo_Bellas.
Здравствуйте, Tuo_Bellas, Вы писали:
T_B>Здравствуйте, Igore, Вы писали:
I>>Если раскоментировать CharToOem, то на консоль выводится правильно, а файл создается "вҐбв.txt", так что я
T_B>Так вот в том-то все и дело, что это только под восьмеркой появилось.
T_B>Спасибо, T_B>Tuo_Bellas.
Т.е. в обоих случаях, с CharToOem и без CharToOem файл создается не привильный?
Здравствуйте, Igore, Вы писали:
I>>>Если раскоментировать CharToOem, то на консоль выводится правильно, а файл создается "вҐбв.txt", так что я T_B>>Так вот в том-то все и дело, что это только под восьмеркой появилось. I>Т.е. в обоих случаях, с CharToOem и без CharToOem файл создается не привильный?
Здравствуйте, Tuo_Bellas, Вы писали:
I>>>>Если раскоментировать CharToOem, то на консоль выводится правильно, а файл создается "вҐбв.txt", так что я T_B>>>Так вот в том-то все и дело, что это только под восьмеркой появилось. I>>Т.е. в обоих случаях, с CharToOem и без CharToOem файл создается не привильный?
T_B>Да, â¥áâ.txt с ним и òåñò.txt без него.
Я вот думаю, может нужно как-то локаль настроить? Для меня i18n в С++ — темный угол. Есть там какие-то рычаги на эту тему?
T_B>Вариант (*) создает файл с именем "òåñò.txt" (набор букв с диакритическими знаками, похоже на неправильный codepage). T_B>Вариант (**) (который вообще, по идее, компилиться не должен) создает файл с правильным именем "тест.txt".
T_B>Как сделать, чтобы работал первый вариант (*)?
Здравствуйте, saproj, Вы писали:
T_B>>VC8, XP SP2
T_B>>
T_B>> setlocale( LC_ALL, ".ACP" );
T_B>>}
Сработало, спасибо. Только теперь десятичным разделителем считается запятая. Есть ли возможность сделать так, чтобы в пределах моей программы это была точка вне зависимости от выбранной локали?
Здравствуйте, Tuo_Bellas, Вы писали:
T_B>Только теперь десятичным разделителем считается запятая. Есть ли возможность сделать так, чтобы в пределах моей программы это была точка вне зависимости от выбранной локали?
setlocale(LC_NUMERIC, "");
?
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde