通过Qt的QTextCodec实现utf-8与gb2312编码字符的互转
2014-02-12 16:37阅读:
1.说明:
(1)QString类型变量内存储的内容都是以Unicode编码(Unicode不等于utf-8)解释的; (2)QTextCodec类对象的“toUnicode”函数将函数参数里的字符串 按照此QTextCodec对象对应的字符编码解释与读取,然后把它转为Unicode编码的字符串;
(3)QTextCodec类对象的“fromUnicode”函数将函数参数里的字符串 按照Unicode编码解释与读取,然后把它转为此QTextCodec对象对应的字符编码的字符串;
(4)std::string在此只用于保存字符串数据内容;
2.测试通过的代码:
void utf8ToGb2312(std::string& strUtf8)
{
QTextCodec* utf8Codec= QTextCodec::codecForName('utf-8');
QTextCodec* gb2312Codec = QTextCodec::codecForName('gb2312');
QString strUnicode= utf8Codec->toUnicode(strUtf8.c_str());
QByteArray ByteGb2312= gb2312Codec->fromUnicode(strUnicode);
(1)QString类型变量内存储的内容都是以Unicode编码(Unicode不等于utf-8)解释的; (2)QTextCodec类对象的“toUnicode”函数将函数参数里的字符串 按照此QTextCodec对象对应的字符编码解释与读取,然后把它转为Unicode编码的字符串;
(3)QTextCodec类对象的“fromUnicode”函数将函数参数里的字符串 按照Unicode编码解释与读取,然后把它转为此QTextCodec对象对应的字符编码的字符串;
(4)std::string在此只用于保存字符串数据内容;
2.测试通过的代码:
void utf8ToGb2312(std::string& strUtf8)
{
QTextCodec* utf8Codec= QTextCodec::codecForName('utf-8');
QTextCodec* gb2312Codec = QTextCodec::codecForName('gb2312');
QString strUnicode= utf8Codec->toUnicode(strUtf8.c_str());
QByteArray ByteGb2312= gb2312Codec->fromUnicode(strUnicode);
