Я разрабатываю приложение Qt GUI для анализа пользовательского двоичного файла Windows, который хранит текст unicode с использованием wchar_t (по умолчанию кодировка UTF-16). Я построил QString
с помощью QString::fromWcharArray
и передал его QTextBrowser::insertPlainText
как этотQTextBrowser не отображает неанглийские символы
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
.
Как это исправить?
Дубликат этого вопроса http://stackoverflow.com/questions/28495855/why-unicode-fonts-are-not-showing-properly-in-the-qtextbrowser-when-unicode-cont? – rpsml
@ rpsml, я проверил это, прежде чем спрашивать. В его случае я думаю, что проблема связана с чтением файла с правильной кодировкой. В моем случае я работаю над файлом с отображением памяти, и генерация QString действительно правильна, проверяя его под отладчиком. Проблема заключается в том, чтобы отправить его на QTextBrowser. – shebaw
Какой шрифт вы используете? Поддерживает ли шрифт требуемые символы? –