• 5486阅读
  • 3回复

请教将文件里的Unicode转成中文的办法 [复制链接]

上一主题 下一主题
离线howie1013
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-29
有一个code.html文件,里面的中文字符用\uXXXX的形式表示
我想在QT里读入后转成中文,有什么办法??

我试过
    QFile file("code.html");
    file.open(QIODevice::ReadOnly);
    QTextStream in(&file);
    str = in.readAll();
    //str = "\u65e5\u8bb0";

    QByteArray ba = str.toAscii();
    qDebug() << QTextCodec::codeForName("UTF-8").toUnicode(ba);

这样显示出来还是没变化。

但如果直接将一段UNICODE字符串赋值给QByteArray,这方法就可以。
离线dbzhang800

只看该作者 1楼 发表于: 2010-07-29
1. 你从文件中读出的是 "\\u65e5\\u8bb0",注意斜杠在C、C++中的含义

2. 你简单写个parser,将 u后面的数转成short,然后赋值给 QChar 就行了
离线howie1013
只看该作者 2楼 发表于: 2010-07-30
引用第1楼dbzhang800于2010-07-29 20:00发表的  :
1. 你从文件中读出的是 "\\u65e5\\u8bb0",注意斜杠在C、C++中的含义
2. 你简单写个parser,将 u后面的数转成short,然后赋值给 QChar 就行了


谢谢
第2个可以,不过第1个方法,我明白你意思,不过QT里面qDebug出来是"\u65e5\u8bb0",怎么才能将多余的斜杠去掉?
离线dbzhang800

只看该作者 3楼 发表于: 2010-07-30
第一个不是方法,只是提醒一下,你的理解有误区。
快速回复
限100 字节
 
上一个 下一个