2009-03-04 31 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()。