近日在服务器端通过导出csv文件,将数据从linux服务器端保存到windows桌面端,以便用户可以通过excel打开使用数据。
但是在使用excel打开csv文件时,出现了中文乱码的情况,但是使用记事本打开没有问题。
经过分析,原因如下:
1)linux服务器端采用的是zh_CN.utf-8编码方式;
2)windows的excel打开csv文件默认是使用ansi(gbk)编码方式;
这样就导致excel打开乱码的现象。
解决方案:
1.在服务器端代码中增加转码操作,由于是整个文件,故采用iconv命令行方式进行整体转码,然后通过system调用shell来实现;
2.判断system是否调用成功,需要查看system的返回值。这里不展开讨论,网上有很多说明。关键字:system 返回值 signal 。