- 操作系统:Windows 8.1
- 数据库:MS SQL Server 2008 R2
- Qt 版本:5.2
- 数据库驱动程序:"QODBC"
我遇到了一个小问题,涉及到umlaut。
我用NVARCHAR(35)创建了一张表,并将其填充为N’1ö2’。当我在SQL Management Studio中选择某些内容时,我可以看到umlaut ö。
但是,在Qt中,我使用如下代码:qDebug() << “name“ << aQuery->value(„name“).toString();
,但我得到的结果是name "1?2"
即使我循环遍历可用编解码器(QTextCodec::availableCodecs();),我也无法得到一个有效的1ö2字符串。
QByteArray ba = aQuery->value(„name").toByteArray();
qDebug() << "hex" << ba.toHex() << "str" << QString(ba) << "count" << ba.count();
输出:
hex "31efbfbd32" str "1?2" count 5
31是1
32是2
efbfbd是Unicode码代表的是?(替换字符)
所以我的问题非常简单——我做错了什么?;-)
谢谢,马蒂亚斯