QtWebKit不渲染日语(Shift_JIS charset)

时间:2012-05-16 13:03:23

标签: qt character-encoding qtwebkit qt4.8

我有一个HTML文件,我想在QWebView中加载。标题看起来像:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>

正文是混合拉丁文和日文字符。

页面在Chrome中完美显示,但当页面显示在时,所有日文字符都会被QWebView替换。

QtWebKit似乎使用与QTextCodec使用的系统相同的系统来处理unicode和其他字符集之间的转换(如果我错了,请纠正我),因此我假设QtWebKit可以支持Shift_JIS

作为测试,我尝试为汉字字符添加特定的 unicode (例如&#x3041;以显示ぁ)到我的HTML文件。我在Chrome中正确呈现了角色,但它在中也显示为QWebView - 我不确定这是否意味着我可以信任Shift_JIS来在Qt中进行unicode转换,但这肯定意味着我不能认为这是问题的原因。

我不确定从哪里开始;任何关于解决方案或其他调查领域的建议都将非常感激。

1 个答案:

答案 0 :(得分:1)

原来我一直在思考这个问题,实际上有一个非常简单的解决方案:

当遇到当前字体无法显示的汉字字符时,Chrome很聪明,可以回退到支持这些字符的字体(在我的Win 7 PC上,默认的汉字字体是MS Gothic)。

QtWebKit没有此功能,因此有必要为需要它的区域明确指定(在CSS中)支持汉字的字体。