【发布时间】:2016-03-31 07:38:29
【问题描述】:
我遇到了 Unicode 问题。德语字母 ä、ü、ö 和 ß 仅显示为黑色菱形中的白色问号。我在 Qt5.5.1 中创建了一个QAbstractTableModel。
我的文档是 UTF-8 编码的。我已经尝试过了,但我仍然遇到同样的问题。
QVariant bodyPartModel::data(const QModelIndex &index, int role) const
{
switch (role){
case Qt::DisplayRole:
if (col == 0 && row == 0) return tr("ü");
if (col == 0 && row == 2) return String::fromUtf8("ä");
//
}
有人知道如何正确显示这些字符吗?
edit.: 是的,我需要一个字符串,在这个例子中我只使用了一个字符。
感谢 Adriano Repetti,这就是解决方案:
QString::fromWCharArray(L"Steißbein")
【问题讨论】:
-
需要显示单个字符吗?
-
不是 UTF-8 字符串,简单的方法是
return QString::fromWCharArray(L"ä")。你可以使用单个QChar,如果你真的只有一个字符(并且你不需要处理 e + ' 的东西),但我更喜欢一般形式。
标签: c++ qt unicode diacritics qabstracttablemodel