各位好,小弟在解析CSV檔案的時候遇到一件很神奇的事情
因為檔案常常由中國供應商提供 編碼語系常常搞得我很頭痛
這次遇到的情形是在local測試使用
setlocale(LC_ALL, 'zh_CN.gb2312');
可以順利顯示
在Server上卻有部分文字會產生亂碼
最後使用
setlocale(LC_ALL, 'en_US.UTF-8');
在Local及Server上都可以正常顯示
我猜測編碼應該是UTF-8 只是有些文字剛好編碼位置相同所以才能夠顯示
但這樣沒辦法解釋為什麼在Server跟在Local會有不同的結果
有人知道什麼原因會導致這個情況發生嗎?
使用 gb2312 原本就支援的漢字就不多。約6000多字。(剛查了一下,現在是7000多了)
所以很容易造成部份字是無法正常顯示的。
大多數來說,我還是會用zh_CN.UTF-8來跑。
當然,碰到真的跑gb2312編碼的軟體,還是無解的。