2 weifengzc weifengzc 于 2015.06.02 09:51 提问

mfc 操作csv文件时,无法写入汉字

使用vs2013向csv文件写数据,但是无法写入汉字,英文和数字可以正常写入
求大神指导

5个回答

weifengzc
weifengzc   2015.06.02 13:09
已采纳
//设置语言为中文,否则在Unicode编码下读出中文字符为乱码 
    char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
    setlocale(LC_CTYPE, "chs");
    。。。
    文件操作
    。。。

    setlocale(LC_CTYPE, old_locale); //还原语言区域的设置 
    free(old_locale);//还原区域设定

我添加了这几句就可以了

oyljerry
oyljerry   Ds   Rxr 2015.06.02 10:11

你文件用unicode等编码格式,然后再用英文的逗号作为分隔符,写csv文件

weifengzc
weifengzc 文件时用的unicode编码格式,是用的英文的逗号分隔,但是汉字无法写入,其他的都正常
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.02 10:13
91program
91program   Ds   Rxr 2015.06.02 10:18

无法写入,应该不会吧。最多是写入的汉字是乱码!是不是?
这个问题一般是汉字的编码问题,CSV 如果采用 ANSI 编码,则需要将 Unicode 的汉字转成 ANSI 的;如果 CSV 文件采用 Unicode 编码,则一样要注册写入文件时的汉字编码格式是 Unicode.

91program
91program 回复weifengzc: CSV 文件,其实就是简单的文本文件+固定的格式,如果汉字无法写入,应该也是你实现的问题吧。请提供你的写入 CSV 的代码来分析。
2 年多之前 回复
weifengzc
weifengzc 是无法写入,不是乱码,如果写的是汉字则是空白,其他的就正常
2 年多之前 回复
u010655288
u010655288   2015.06.02 10:32

编码格式问题。。。楼上已经说得很清楚了。。

Csdn user default icon
上传中...
上传图片
插入图片