2009-03-04 32 views
1

當我從Word文檔複製並粘貼到QT TextEditor時,它看起來很好。但是,當我嘗試使用toPlainText或toHTML訪問文本時,它將帶有所有引號(雙精度和單精度)的文本作爲問號返回。有沒有解決的辦法?我正在使用qt4-qtruby綁定。QTextEditor在QT Ruby中將問號作爲問號返回

回答

1

這是因爲在Word中使用的引號實際上不是ASCII引號字符 - 它們是某種時髦的unicode字符,它看起來像一個引號。

對於HTML,如果使用UTF-8編碼,它應該可以正常工作。對於純文本,雖然你幾乎不走運。

這裏有一個nice page with some more info

0

我假設你正在使用QTextEdit。我認爲問題是編碼相關。嘗試將文檔保存爲純文本並嘗試相同。如果與word進行互操作非常重要,我認爲你必須弄清楚如何更改複製粘貼上的編碼。

編輯
不管你最終使用什麼解決方案。我很感興趣。

我是QT的新手,這只是我的看法。

我希望這會有所幫助。

+0

我還沒有找到滿意答案。但在這一點上,QT庫中鏈接的ruby綁定似乎存在不兼容性。如果你使用的是直接的c或C++,我相信你不會看到這個問題,或者至少你可以通過設置編碼來解決它。 – GitNick 2009-03-18 14:18:57

0

當你調用toPlainText()返回一個QString的。 QString是內部unicode,只要數據在QString內部就可以了。如果使用toAscii()從QString中獲取數據,那麼這就是發生錯誤轉換的地方。
如果此理論正確,請在QString上使用toUtf8()而不是toAscii()。