qt 6 中 中文乱码,读取 gbk得char* ,怎么样转成 utf-8格式字符串

qt 6 中 中文乱码,读取 gbk得char* ,怎么样转成 utf-8格式字符串

char* str = "中文中文中文";
QString qstr = QString::fromLocal8Bit(str);
QByteArray utf8Bytes = qstr.toUtf8();
char* utf8Str = utf8Bytes.data();

参考GPT和自己的思路:您可以使用Qt自带的QString类来进行字符编码转换,以下是一段示例代码:

char *gbkString = "中文内容";
QString utf8String = QString::fromLocal8Bit(gbkString).toUtf8();

其中,fromLocal8Bit将gbkString解码为QString格式,toUtf8将QString编码为utf-8格式。将以上代码嵌入到您的应用程序中,即可实现gbk到utf-8的转换。

安装Qt6时勾选Qt 5 Compatibility Module,然后.pro文件里加上 QT += core5compat 就可以继续使用QTextCodec了
Qt6里QTextCodec似乎改成QStringDecoder和QStringEncoder了,但是支持的8位编码除了Utf8和Latin1以外只有System,好像不能强制指定gbk