首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义QWebElement的“`toPlainText()”的字符编码

定义QWebElement的“`toPlainText()”的字符编码
EN

Stack Overflow用户
提问于 2011-11-29 11:48:41
回答 1查看 957关注 0票数 0

在处理QWebKit的QWebElement及其toPlainText()函数(*)时,我很难掌握字符编码的诀窍。

我得到了一个QString,它的UTF8编码保存了HTML页面的内容,该页面是通过QFile从本地磁盘读取的。不,我想用QWebKit解析这个页面。因此,我将QWebFrame对象定义为QWebPage的一部分。使用QWebFrame::setHtml(),我将QString填充到QWebKit环境中。

代码语言:javascript
复制
QString rawReport = "some UTF8 encoded string read in previously";
QWebPage p;
QWebFrame *frame = p.mainFrame();
frame->setHtml(rawReport);
QWebElement report = frame->documentElement();
qDebug() << report.toPlainText();

但不知怎么的,qDebug()似乎搞错了编码,例如,德国的umlauts äöüß显示得相当有趣。即使不是作为它们对应的HTML实体。

我怀疑这是qDebug的错,而是QWebElement内部的编码。在我读到的某个地方,QWebFrame::setHtml()期望UTF8编码。但我几乎可以肯定,这里就是这样的。

我遗漏了什么?是否有某个函数/选项可以强制QWebFrame/QWebElement对输入和输出使用特定的字符编码?

*使用QWebElement::toOuterXml()QWebElement::toInnerXml()显示相同的编码问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-29 12:11:15

您是否尝试过使用QString的from*()函数来查找toPlainText()返回的字符串是如何编码的?

文件说明

使用此方法时,WebKit假设外部资源(如JavaScript程序或样式表)是以UTF-8编码的,除非另有指定。例如,可以通过HTML脚本标记的charset属性指定外部脚本的编码。还可以由web服务器指定编码。“”。

因此,我将尝试更改要加载的html源(对应的meta标记)中指定的字符集,以显式指定您使用的是UTF-8。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8310196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档