logo头像

技术引领生活!

Qt读取文件编码转换

Qt默认的编码为Utf8但是还是遇到不开眼的Windows下的GBK编码,本文记录下编码转换函数备用

主要代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*函数功能:
* 将QByteArray由GBK编码转化为UTF-8
*/
QString GetCorrectUnicode(const QByteArray &ba)
{
QTextCodec::ConverterState state;
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString text = codec->toUnicode(ba.constData(), ba.size(), &state);
if (state.invalidChars > 0)
{
text = QTextCodec::codecForName("GBK")->toUnicode(ba);
}
else
{
text = ba;
}

return text;
}

PS

代码很简答,将上述代码中的GBK换成其他格式即可指定为所需要的编码

支付宝打赏 微信打赏

您的支持是我前行的动力!