2011年2月7日 星期一

【轉貼】PHP5中fgetcsv显示中文的解决方法

【轉貼】PHP5中fgetcsv显示中文的解决方法


以前做的中文打字程式是用PHP4寫的,自從升級到PHP5後就出現了些古怪的問題,如字庫裡有的字但打不出來等,一直都不知道是甚麼事,知道是fgetcsv(感謝網友指正)對中文的支持不好,但沒找出原因,今天一時心血來潮上網找了找看,原來可以用以下的方法解決:



fgetcsv显示中文的解决方法
  1. setlocale(LC_ALL, 'zh_CN');
  2. $row = 1;
  3. $handle = fopen("xxx.csv","r");
  4. while ($data = fgetcsv($handle, 1000, ",")) {
  5. $num = count($data);
  6. echo " $num fields in line $row:
    \n"
    ;
  7. $row++;
  8. for ($c=0; $c < $num; $c++) {
  9. echo $data[$c] . "
    \n"
    ;
  10. }
  11. }
  12. fclose($handle);
  13. ?>
解释:
// utf-8
setlocale(LC_ALL, 'en_US.UTF-8');
// 简体
setlocale(LC_ALL, 'zh_CN'); "xxx.csv"更改成你的文件
以下是常用的地区标识
zh_CN GB2312
en_US.UTF-8 UTF-8
zh_TW BIG5
zh_HK BIG5-HKSCS
zh_TW.EUC-TW EUC-TW
zh_TW.UTF-8 UTF-8
zh_HK.UTF-8 UTF-8
zh_CN.GBK GBK

1 則留言:

  1. 知道是fgetcvs對中文的支持不好 << 這句應該是fgetcsv

    回覆刪除