2009年3月3日 星期二

PHP5中fgetcsv显示中文的解决方法

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

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. 超級極度感謝!!!!!!!!!!!! 你的一句解決了我一整天的煩惱!!!!!

    回覆刪除