Начал читать книжку по QT, самом начале простой пример с отображением текста. Латиница отображается без вопросов, а кириллица крюкозябрами. Компилю в QT Creator
В общем вывод такой: До переводов на русский язык рано идти. Прежде нужно познакомиться с тем, что такое Linguist и вообще как делаются переводы программ.
В QString к сожалению нет конструктора, принимающего const wchar_t *, а жаль.
Кстати, да. Никогда не понимал почему, ведь это родное внутреннее представление для QString'а...
UPD Хотя не, вру, в линуксе ведь wchar_t - 4 байта, а в QString - 2 байтовые символы используются, как wchar_t под виндой, да...
Но написать преобразование - уж точно не сложно!
NickLion, это не под виндой а в вижуал.
В mingw разве не 4 байта?
Да, да в Visual C++. Неправильно сказал. Просто в винде практически все исходники завязаны на то, что L"" - 2 байтные символы. Так что не гарантирую, что в другом случае все будет хорошо. Просто тот же OLE может пойти гулять
Не, тоже 2. Но я где-то натыкался, что толи при компиляции указывается, толи флагами можно задать.
-fshort-wchar
Override the underlying type for wchar_t to be short unsigned int instead of the default for the target. This option is
useful for building programs to run under WINE.
Warning: the -fshort-wchar switch causes GCC to generate code that is not binary compatible with code generated without
that switch. Use it to conform to a non-default application binary interface.
-fno-short-wchar
Override the underlying type for wchar_t to be the default for the target, instead of using short unsigned int, which is the default for Win32.
Вот, возможно еще что-то есть. Но под виндой лучше 2 байта - меньше проблем с исходниками от МС. Да просто передать юникод строку в WinAPI будет проблемой.
Да в принципе, если не использовать символы, выходящие за пределы 2 байт, то проблем с переносом быть не должно.
А при конвертации из char * в wchar_t * сурагатными парами заменять. Для многих программ должно подойти.