Принудительно использовать кодировку для декодирования HTML в QT WebKit - PullRequest
0 голосов
/ 17 ноября 2011

Я использую qt web kit api для преобразования html-файлов в pdf.

Проблема, с которой я сталкиваюсь, заключается в искажении символов персонажей Юго-Восточной Азии.

Сейчас я вручную устанавливаю набор символов для html-файлов следующим образом:

QWebSettings objWebSettings = objQWebPage.settings();
    objWebSettings.setDefaultTextEncoding("GB18030");

, но приведенный выше код завершается ошибкой для html-файлов следующего типа:

<html>
<head>
</head>
<body class='hmmessage'><div dir='ltr'>
<br><br><div><hr id="stopSpelling">From: sunbeam_is_me@hotmail.com<br>To: sunbeam0606@gmail.com<br>Subject: <br>Date: Thu, 10 Nov 2011 14:53:17 +0800<br><br>

<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

</style>

<div dir="ltr">
逆势大;你是我的阿</div></div></div></body>
</html>

Мне кажется, что движок webkit отдает приоритет заголовку 'meta', который определяет кодировку и игнорирует переданную мной кодировку.

Есть ли способ, которым я могу применить свою кодировку в движке webkit?

Заранее спасибо

Ashish

1 Ответ

1 голос
/ 17 ноября 2011

Вы можете конвертировать документы в UTF-8 перед отправкой в ​​QWebPage.

Это можно сделать с помощью QTextStream и вызова QTextStream::setCodec для установки кодировки символов.

...