Qt юникод и умлаутс - PullRequest
       32

Qt юникод и умлаутс

6 голосов
/ 29 июня 2011

Поскольку мы преобразовали все наши исходные и заголовочные файлы в Unicode, мы столкнулись с проблемами с немецкими умлаутами. Все хорошо в исходном коде, но QLabels и другие компоненты графического интерфейса показывают искаженные умляуты.

Источник ISO-8859-1 работает нормально, но вызывает проблемы при переключении между OSX и Windows.

Что-нибудь, что я должен установить в файле проекта?

Среда: Qt 4.7 с Qt Creator 2.3.0 с использованием MinGW в Windows XP SP3

Example

Ответы [ 2 ]

10 голосов
/ 29 июня 2011

Попробуйте вызвать

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

сразу после создания объекта QApplication.QTextCodec::setCodecForTr требуется только в том случае, если вы используете tr().

EDIT: Это работает только для Qt старше версии 5. Более новые версии Qt ожидают, что исходные файлы будут преобразованы в UTF-8.

0 голосов
/ 30 июня 2011

У меня была похожая проблема, и я решил использовать только 7-битные символы ASCII в моих исходных файлах и установить QTranslator, который создает умляуты.

Поскольку приложение все равно нужно переводить на другие языки, это кажется хорошим способом избежать проблем с кодированием.

...