Qt读取文件中文编码问题

Qt在读取文件时,文件内容与当前设置的编码格式不一致时,将导致显示内容是乱码。这里给出判断文件编码格式的方法。

 

判断编码格式为UTF-8,UTF-16,UTF-32以及GB_2312

Q_ENUMS(TextUniCode)

enum TextUniCode

{

   UTF_8, ///< unicode utf-8

   UTF_16,///< unicode utf-16

   UTF_32,///< unicode utf-32

    GB_2312   ///< GB_2312

};

 

TextUniCode checkDataUniCode(QByteArraytext)

{

if(text.size()>=3&&(quint8)text[0]==0XEF&&(quint8)text[1]==0XBB&&(quint8)text[2]==0XBF)

       return UTF_8;

 

if(text.size()>=4&&

(((quint8)text[0]==0X00&& (quint8)text[1]==0X00 &&(quint8) text[3]==0XFF && (quint8)text[4]==0XFE)||

((quint8)text[0]==0XFF&&(quint8)text[1]==0XFE&& (quint8)text[3]==0X00 && (quint8)text[4]==0X00)))

       return UTF_32;

    if(text.size()>=2&&(((quint8)text[0]==0XFE&&(quint8)text[1]==0XFF)||((quint8)text[0]==0XFF&&(quint8)text[1]==0XFE)))

       return UTF_16;

    returnGB_2312;

}

 

具体原因请参照:

http://blog.csdn.net/baiwfg2/article/details/38701495

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值