QT 奇数个中文会出现乱码问题
今天鼓捣pugixml(环境vs2015,win10 ),在添加属性值并保存时候出现中文乱码,以前没有注意到当中文是奇数个时候出现乱码,可能以前写的都是偶数个,记不清了。
便开始在网上搜索解决方法:例如用记事本打开保存,将中文的后面加一个英文的. ,以及添加QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));等系列解决方法都使用过,对于此问题都不适用。
中文后面加英文的. :出现的问题是最后一个中文以及那个英文的.会出现乱码
其他方法:全部是乱码
-------------------------------------------
代码如下:
QString str = "220kV仪宣4323线测控";
std::string ss = str.toStdString();
const char* s = ss.c_str();
firstIED.append_attribute("desc") = s;
doc.save_file(fileName, "\t", pugi::format_default, pugi::encoding_utf8);
------------------------------------------------
鼓捣了半天没有成果,一个低调的大神告诉我,在代码中添加如下:#pragma execution_character_set("utf-8")。
然后的然后,果然厉害,保存后中文不会出现乱码了。