私はhtmlファイルを読んでいます。このファイルには、基本的に次のようなUnicodeテキストが含まれています。
<b>akko- sati (ā + kruś), akkhāti (ā + khyā), abbahati (ā + bṛh)</b>
しかし、QTextBrowserはUnicodeフォントを解釈していません。したがって、QTextBrowserは次のように表示します。
akko- sati (Ä + kruÅ›), akkhÄti (Ä + khyÄ), abbahati (Ä + bá¹›h)
QTextBrowserはhtmlタグを正しく解釈しています。しかし、 Unicodeフォントの何が問題なのですか?
以下は、Unicode コンテンツを読み取って入力するための私のコードです。
void MainWindow::populateTextBrowser(const QModelIndex &index)
{
QFile file("Data\\" + index.data().toString() + ".html");
if (!file.open(QFile::ReadOnly | QFile::Text)) {
statusBar()->showMessage("Cannot open file: " + file.fileName());
}
QTextStream textStream1(&file);
QString string = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><link rel='stylesheet' type='text/css' href='Data/Accessories/qss.css' />";
string += textStream1.readAll();
ui->textBrowser->setHtml(string);
}
ただし、 htmlファイルからUnicodeコンテンツを読み取らずにパラメーターに直接入力すると、Unicodeフォントのみが解釈されます。たとえば、次のようにすれば問題ありません。
ui->textBrowser->setHtml("<b>akko- sati (ā + kruś), akkhāti (ā + khyā), abbahati (ā + bṛh)</b>");
htmlファイルからUnicodeコンテンツを読み取ってQTextBrowserに表示するにはどうすればよいですか?
誰かが私のコードのバグのある部分を見せてくれたり、問題を解決するためのより良い方法を教えてくれたりしたら、とても感謝します。