QString中文串写入csv文件用excel表格打开出现中文乱码怎么解决
时间: 2023-12-06 09:04:54 浏览: 128
解决生成csv文件出现的乱码问题
3星 · 编辑精心推荐
出现中文乱码的原因是因为Excel默认的编码格式不支持中文字符。解决方法如下:
1. 将Excel的编码格式设置为UTF-8,具体步骤是在Excel中点击“文件”->“选项”->“高级”,在“常规”选项卡中将“Excel的文件格式”设置为“Unicode UTF-8”。
2. 在写入csv文件时,使用带BOM(Byte Order Mark)的UTF-8编码格式,BOM是一个特殊的字符,用于标识文本文件的编码格式。使用BOM后,Excel会自动识别文件的编码格式,并正确显示中文字符。
以下是使用Qt写入带BOM的UTF-8编码格式的代码示例:
```
QFile file("test.csv");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out.setCodec("UTF-8");
out << QString("\xEF\xBB\xBF"); // 写入BOM
out << "中文,English\n";
out << "你好,Hello\n";
file.close();
}
```
注意,上述代码中的"\xEF\xBB\xBF"就是BOM的十六进制表示。
阅读全文