我正在開發一個Qt GUI應用程序來解析出使用wchar_t(默認UTF-16編碼)存儲unicode文本的自定義windows二進制文件。我已經使用QString::fromWcharArray
構建的QString
,並傳遞給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
你使用什麼字體?字體是否支持所需的字符? –