【发布时间】:2009-03-04 16:23:34
【问题描述】:
当我从 Word 文档复制并粘贴到 QT TextEditor 中时,它看起来不错。但是当我尝试使用toPlainText 或toHTML 访问文本时,它会返回带有所有引号(双引号和单引号)作为问号的文本。有没有解决的办法?我正在使用 qt4-qtruby 绑定。
【问题讨论】:
标签: ms-word text-editor copy-paste quotes qtruby
当我从 Word 文档复制并粘贴到 QT TextEditor 中时,它看起来不错。但是当我尝试使用toPlainText 或toHTML 访问文本时,它会返回带有所有引号(双引号和单引号)作为问号的文本。有没有解决的办法?我正在使用 qt4-qtruby 绑定。
【问题讨论】:
标签: ms-word text-editor copy-paste quotes qtruby
这是因为 Word 中使用的引号实际上不是 ASCII 引号字符 - 它们是某种时髦的 unicode 字符,看起来像引号。
对于 HTML,如果您使用 UTF-8 编码,它应该可以正常工作。对于纯文本,虽然你很不走运。
【讨论】:
我假设您使用的是 QTextEdit。我认为问题与编码有关。尝试将 word 文档保存为纯文本并尝试相同的操作。如果与 word 互操作很重要,我认为您必须弄清楚如何在复制粘贴时更改编码。
编辑
发布您最终使用的任何解决方案。我很感兴趣。
我也是 QT 新手,这只是我的看法。
我希望这会有所帮助。
【讨论】:
当您调用toPlainText() 时,它会返回QString。 QString 是内部 unicode,因此只要数据在 QString 内,它就应该没问题。如果您使用toAscii() 从QString 中获取数据,那么这就是发生错误转换的地方。
如果这个理论是正确的,请在QString 上使用toUtf8() 而不是toAscii()。
【讨论】: