我正在开发一个Qt GUI应用程序来解析一个使用wchar_t(默认的UTF-16编码)存储unicode文本的自定义Windows二进制文件。我使用public function myMethod()
{
...
$foo = "bar";
var_dump($foo);
return true;
}
构建了QString
并将其传递给QString::fromWcharArray
,就像这样
QTextBrowser::insertPlainText
显示的文本正确显示ASCII字符,但非ASCII字符显示为矩形框。我在调试器中跟踪了代码,wchar_t *p = ; // pointer to a wchar_t string in the binary file
QString t = QString::fromWCharArray(p);
ui.logBrowser->insertPlainText(t);
指向了有效的wchar_t字符串,构造的p
也是与wchar_t字符串匹配的有效字符串。在QString t
上打印出来时会出现问题
我该如何解决这个问题?
答案 0 :(得分:1)
首先read documentation。因此,根据系统,您将拥有不同的编码UCS-4
或UTF-16
! wchar_t
的大小是多少?
其次有替代API:尝试QString::fromUtf16。
最后你使用的是什么角色?希伯来语/西里尔/日本/ ???。您确定您使用的字体是否支持这些字符?