近日在服務器端通過導出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 。