QT判断文本编码的方法QTextCodec::codecForName

suoniao 2020-08-10
需要:0索币

读取txt文件时,很多时候无法获取文件的编码格式。如果直接进行使用,则有可能出现乱码。需要在使用前将其转为Unicode(Qt的默认编码格式)。

虽然实际的编码格式种类非常多,但平常主要使用的有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;
}
回帖
  • 消灭零回复
局域网文件共享软件
相关主题
Qt利用QDir::drives获取磁盘盘符列表的代码 0
QT递归获取路径下面的文件和文件夹名称 0
QtreeWidget选中一行后背景色改变代码 0
Qt根据QFontMetrics类来计算当前字符串的长度实现QTextEdit自动换行的功能 0
Qt生成CSV格式数据和文件代码 0
QT利用QProcess执行外部CMD命令 0
QT利用QStandardPaths获取windows桌面路径代码 0
QT一行代码获取windows我的文档目录路径 0
QT利用QAxObject读取Excel一行数据代码 0
QT对Excel进行新增、删除、修改读取从入门到精通 0
引入objbase.h,解决返回QAxObject为空的问题 0
QT打开Excel文件并读取所有数据代码 0
使用QWebEngineView开发实现一个浏览器 0
QTreeView获取选中单行数据和多行数据 0
QTcreator打包发布软件教程 0
QT实现HTTP文件下载功能 0
成功的将两个button加入到QWidget中,下面是运行效果图 0
Qt生成JSON数据和解析JSon数据 0
qt接收json数据中包含中文转换 0
QT利用QNetworkAccessManager实现FTP文件下载功能 0
相关主题
Centos Linux设置时间同步 利用ntpdate同步网络时间 0
Qt利用QDir::drives获取磁盘盘符列表的代码 0
QT递归获取路径下面的文件和文件夹名称 0
根据订单号查询使用的优惠券软件下载 0
从显卡驱动入手的构造D3D Hook的方法 0
计算PCM分贝音频数据与大小 0
YUV 是一种颜色编码方法,和它等同的还有 RGB 颜色编码方法。YUV 的采样与格式 0
利用索鸟快传实现手机访问电脑共享文件夹 0
智能电视播放电脑里的视频 0
智能电视访问电脑共享文件的方法图解教程 0
华为鸿蒙系统开发者工具DevEco Studio安装图文教程 0
网盘批量修改文件名称的方法 0
网盘批量转存工具下载 0
网盘批量分享破解版下载 0
网盘多账号登录软件 0
QtreeWidget选中一行后背景色改变代码 0
通过重启winsock解决QQ能上网网页打不开的问题 0
PHP通过CURL库发送JSON数据到后端 0
Qt根据QFontMetrics类来计算当前字符串的长度实现QTextEdit自动换行的功能 0
Qt生成CSV格式数据和文件代码 0