1

我正在开发一个 Qt GUI 应用程序来解析一个自定义 Windows 二进制文件,该文件使用 wchar_t(默认 UTF-16 编码)存储 unicode 文本。我已经构建了一个QStringusingQString::fromWcharArray并将其传递给QTextBrowser::insertPlainTextlike this

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.
我该如何解决?

4

1 回答 1

1

首先阅读文档。因此,根据系统,您将有不同的编码UCS-4UTF-16!的大小是wchar_t多少?

其次还有替代 API:试试QString::fromUtf16

最后你用的是什么角色?希伯来文/西里尔文/日文/???。您确定您使用的字体支持这些字符吗?

于 2015-05-28T11:43:07.160 回答