QTextBrowser 不显示非英文字符
QTextBrowser not displaying non-english characters
我正在开发一个 Qt GUI 应用程序来解析自定义 windows 二进制文件,该文件使用 wchar_t(默认 UTF-16 编码)存储 unicode 文本。我使用 QString::fromWcharArray
构建了一个 QString
并将其传递给 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
.
上打印时会出现问题
我该如何解决这个问题?
首先read documentation。因此,根据系统的不同,您会有不同的编码 UCS-4
或 UTF-16
! wchar_t
的大小是多少?
其次还有一个选择API:试试QString::fromUtf16.
最后你用的是什么角色? Hebrew/Cyrillic/Japanese/???.您确定您使用的字体支持这些字符吗?
我正在开发一个 Qt GUI 应用程序来解析自定义 windows 二进制文件,该文件使用 wchar_t(默认 UTF-16 编码)存储 unicode 文本。我使用 QString::fromWcharArray
构建了一个 QString
并将其传递给 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
.
上打印时会出现问题
我该如何解决这个问题?
首先read documentation。因此,根据系统的不同,您会有不同的编码 UCS-4
或 UTF-16
! wchar_t
的大小是多少?
其次还有一个选择API:试试QString::fromUtf16.
最后你用的是什么角色? Hebrew/Cyrillic/Japanese/???.您确定您使用的字体支持这些字符吗?