QString 分割字符串时产生乱码的问题
Posted Coder-tu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QString 分割字符串时产生乱码的问题相关的知识,希望对你有一定的参考价值。
QString 提供了字符分割的封装函数split,我所用到的原型如下:
QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts,
Qt::CaseSensitivity cs = Qt::CaseSensitive) const Q_REQUIRED_RESULT;
参照声明可以发现,使用时无特殊要求传入第一个分割标识即可,按照分割标识分割后返回的子串存储在一个QStringList当中。包含有汉字时,此处经常发现类似
QStringList tInfo = strMembers.split("\n");
这样操作之后,tInfo中的带汉字的子串乱码,转码无效,无法复原。
应对该情况的解决方案如下:
QStringList tInfo = KsSysConfig::g_pCodec->toUnicode(strMembers.c_str()).split("\n");
其中g_pCodec是自定义的一个汉字转码接口,分割之前一定要将汉字字符串转化为Unicode再进行分割就不会出现乱码了。
以上是关于QString 分割字符串时产生乱码的问题的主要内容,如果未能解决你的问题,请参考以下文章
将中文字符串分割为数组 解决str_split中文乱码php
将中文字符串分割为数组 解决str_split中文乱码php
QString和std::string转换乱码与sqlite存储汉字乱码