Установите кодировку Qt по умолчанию для UTF-8 - программирование
Подтвердить что ты не робот

Установите кодировку Qt по умолчанию для UTF-8

В моем приложении Qt мои файлы исходного кода кодируются как UTF-8. Для следующего кода...

QMessageBox::critical(this, "Nepoznata pogreška", "Dogodila se nepoznata pogreška! Želite li zatvoriti ovaj program ?", QMessageBox::Yes, QMessageBox::No);

... Когда я покажу это окно сообщения, символ "š" не будет отображаться как "š", а как-то странно. Это связано с тем, что Qt преобразует все C-строки, как если бы они были закодированы с использованием LATIN-1. Чтобы решить эту проблему, я использовал:

QMessageBox::critical(this, QString::fromUtf8("Nepoznata pogreška"), QString::fromUtf8("Dogodila se nepoznata pogreška! Želite li zatvoriti ovaj program ?"), QMessageBox::Yes, QMessageBox::No);

Есть ли способ избавиться от всех вызовов QString::fromUtf8()?

4b9b3361

Ответ 2

Что касается "предположения", что "Qt5 предполагает, что все исходные файлы кодируются в кодировке UTF-8": Thiago Macieira объясняет решение разработчиков Qt здесь.

Предположение может быть отключено с помощью QT_NO_CAST_FROM_ASCII в соответствии с документацией.