configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
SetThreadLocale(1032);// греческая локаль
setlocale(LC_CTYPE,"Greek_Greece.1253");
MFC. Меняю локаль потока, но символы с клавиатуры все равно вводятся некорректно.
Меняю локаль на греческий (были попытки менять ее и в InıtInstance приложения и в InitDialog) таким макаром:
Код:
Все функции отрабатываются нормально и возвращают положительные ответы.
Меняю в СEdit charset на GREEK_CHARSET, но при печати в нем на греческом символы все равно отображются как ???. Приложение, понятно, c multybyte charecters.
Может, кто сталкивался?
Вот в этой стать пишут, что комбинации SetThreadLocale+setlocale должно хватать для корректной смены локали..
http://www.codeproject.com/KB/locale/CRTSynch.aspx
В виндах еще настройку надо сделать для non-unicode
Или я что-то путаю?
Используй Юникод, зачем тебе MBCS? Всё равно все системные вызовы в NT внутреннее переводятся в него, так что MBCS ещё и медленнее.
Цитата: Proger_XP
Используй Юникод, зачем тебе MBCS? Всё равно все системные вызовы в NT внутреннее переводятся в него, так что MBCS ещё и медленнее.
У нас должна быть поддержка сразу трех азиатских языков: японского, корейского и китайского, а в юникоде у них некоторые иероглифы представлены как общие, хотя на самом деле -они разные, короче говоря, не совсем корректно выходит.
Странно, куча народу пишет юникод-приложения переведенные на указанные языки и у них с этими иероглифами не так как у вас что ли? Тем более для азиатских языков несколько кодовых страниц бывает (типа упрощенный и традиционный) - может в этом загвоздка?
Цитата: Phodopus
Странно, куча народу пишет юникод-приложения переведенные на указанные языки и у них с этими иероглифами не так как у вас что ли? Тем более для азиатских языков несколько кодовых страниц бывает (типа упрощенный и традиционный) - может в этом загвоздка?
Мне тоже это кажется странным. Я часто работаю с японским, и единственная известная мне проблема в ошибке в функциях MultiByteToWideChar и наоборот. Описание оишбки по-моему даже на MSDN было.
Плюс, как я уже писал выше, т.к. внутри всё в Юникоде, то какая выгода вам от MBCS, если он переводится в него же?