QTextBrowser не отображает неанглийские символы

Я разрабатываю приложение Qt GUI для анализа двоичного файла пользовательских окон, в котором хранится текст Unicode, с использованием wchar_t (кодировка UTF-16 по умолчанию). Я построил QString с помощью QString::fromWcharArray и передал его QTextBrowser::insertPlainText как это

wchar_t *p = ; // pointer to a wchar_t string in the binary file
QString t = QString::fromWCharArray(p);
ui.logBrowser->insertPlainText(t);

Отображаемый текст правильно отображает символы ASCII, но не-ASCII символы отображаются вместо этого в виде прямоугольника. Я следовал за кодом в отладчике и p указывает на правильную строку wchar_t и построенную QString t также является допустимой строкой, соответствующей строке wchar_t. Проблема возникает при распечатке на QTextBrowser,
Как это исправить?

1

Решение

Прежде всего читать документацию. Таким образом, в зависимости от системы у вас будет другая кодировка UCS-4 или же UTF-16! Каков размер wchar_t?

Во-вторых, есть альтернативный API: попробуйте QString :: fromUtf16.

Наконец, какого персонажа вы используете? Иврит / кириллицы / японский / ???. Вы уверены, что эти символы поддерживаются шрифтом, который вы используете?

1

Другие решения


По вопросам рекламы [email protected]