如何在此表http://www.ascii-codes.com/cp866.html中获取qchar的int代码?
这是我的代码:
int getCp866Code(QChar c) {
if (!c.isSurrogate()) {
QString temp = c;
QTextCodec* cp866 = QTextCodec::codecForName("IBM 866");
QByteArray byteArray = cp866->fromUnicode(temp);
return (int) byteArray[0];
}
return -1;
}
getCp866Code('ж')//返回-90,而不是166
答案 0 :(得分:1)
这个问题很糟糕。 QChar是一个UTF-16代码单元(这也意味着它可以是代理对的一部分)。你最好的镜头是
QChar::isSurrogate
)请注意,如果您的代码点无法在CP866中编码,则未指定所获得的内容。