Qt读取⽂件中⽂编码问题
Qt在读取⽂件时,⽂件内容与当前设置的编码格式不⼀致时,将导致显⽰内容是乱码。这⾥给出判断⽂件编码格式的⽅法。
unicode文件格式判断编码格式为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;
}
具体原因请参照:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。