asp.net网站转php,免费自己制作音乐,手机商城怎么下载,eclipse 网站开发教程一般在Window开发环境里#xff0c;是GBK编码#xff0c;在Linux开发环境里#xff0c;是utf-8编码#xff0c;关于编码的定义#xff0c; 我就不这里多说了#xff0c;网上有一大堆资料可以查看。 qt对默认的是unicode编码#xff0c;在Window开发环境里#xff0c;比… 一般在Window开发环境里是GBK编码在Linux开发环境里是utf-8编码关于编码的定义 我就不这里多说了网上有一大堆资料可以查看。 qt对默认的是unicode编码在Window开发环境里比较通用的写法是 在main.cpp文件中加入 1. QTextCodec *gbk QTextCodec::codecForName(gb18030); 2. QTextCodec::setCodecForTr(gbk); 3. QTextCodec::setCodecForLocale(gbk); 4. QTextCodec::setCodecForCStrings(gbk); 第一行定义gb18030编码格式 第二行 这个函数的作用是设置传给tr函数时的默认字符串编码GUI设计中最常用的一种。 第三行这个函数主要用于设置和对本地文件系统读写时候的默认编码格式。比如通过流读取一个文件内容时的编码格式。或者通过qDebug输出打印信息时的编码。 第四行这个函数主要是用在字符常量或者QByteArray构造QString对象时使用的一种编码方式。 同理在Linux开发环境里 通用的写法是 QTextCodec *utg8 QTextCodec::codecForName(utf-8); QTextCodec::setCodecForTr(utg8 ); QTextCodec::setCodecForLocale(utg8 ); QTextCodec::setCodecForCStrings(utg8 ); 一般我们做GUI设计的时候 用到最多的也就是setCodecForTr()这个函数了其他可以根据自己所用到的区域在设置不过为了通用编码以便忘记了编码格式而弄的自己头痛 建议还是把这三个统一设置一下吧尽量避免中文乱码出现的概率。 下面讲一下关于编码转换问题 QT中的QString内容使用Unicode作为文本编码。但是实际系统中通常采用的是其他编码例如GBKutf8等。为了便于兼容这些格式QT中还设置了两个字符串类型 QCString类: C类型字符串必须以0结尾也就是中间不能含有0. 例如GBK编码的字符串 QByteArray类: 中间可以含有0.例如utf8编码的字符串 在设置下面的代码基础上 QTextCodec *gbk QTextCodec::codecForName(gb18030); QTextCodec *utg8 QTextCodec::codecForName(utf-8); QTextCodec::setCodecForTr(gbk); QTextCodec::setCodecForLocale(gbk); QTextCodec::setCodecForCStrings(gbk); 1. UTF-8 转换 GBK QString U2G(QString utfStr) { return gbk-toUnicode(utfStr.toLocal8Bit()); } 2 GBK 转换 UTF-8 QString U2G(QString gbkStr) { return utg8-toUnicode(gbkStr.toUtf8()); } ----------------------------------------------------------------------------------- QTextCodec *gbk QTextCodec::codecForName(gb18030); QTextCodec *utf8 QTextCodec::codecForName(utf-8); QTextCodec::setCodecForTr(gbk); QTextCodec::setCodecForLocale(gbk); QTextCodec::setCodecForCStrings(gbk); QFile file(../test.txt); file.open(QIODevice::ReadOnly); QByteArray readByte file.readAll(); QString readStr utf8-toUnicode(readByte.data()); file.close(); QString utfStr QObject::trUtf8(readByte); //utf-8 QString gbkStr QObject::tr(中文); // gbk QString utf2gbk gbk-toUnicode(readStr.toLocal8Bit()); // utf8 conver gbk QString gbk2utf1 utf8-toUnicode(utf2gbk.toUtf8()); // gbk convert utf8 QString g2u gbk-toUnicode(gbk-fromUnicode(readStr)); // gbk convert utf8 qDebug() gbk: gbkStr; qDebug() utf8: utfStr; qDebug() readStr: readStr; qDebug() read_size: readByte.length(); qDebug() utf2gbk: utf2gbk length: readStr.toLocal8Bit().length(); qDebug() gbk2utf8-1: gbk2utf1 length: utf2gbk.toUtf8().length(); qDebug() g2u g2u length: gbk-fromUnicode(utfStr).length(); QLabel *label new QLabel(utf2gbk); label-show();