follow me

PHP:fgetcsv()日本語消失

WebメーラーのSquirrelMailを、とある理由で構築したのですが、
アドレス帳に書いた日本語部分が表示されません。
サーバ上のファイルには、日本語で出力されているので、おかしいと思いまして。。。
どうやら、PHPのfgetcsv()関数が原因だった様です。

fgetcsv()関数は、ロケールを意識するとの事で、srchack.orgの「en_US」がモロに引っかかった様です。

・PHPのマニュアルには、こんな感じです。
注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。

んで、解決策としては、
1. 日本語を使用する際はフィールドをダブルクォートで囲む
2. setlocale(LC_ALL, ‘ja_JP.EUC’);等で一時的にロケールを変更する。

汎用的に考えると、アドレス帳追加時に、ダブルクォートで囲んでファイルに出力する様にプログラム修正ですかね。。。
PHP:fgetcsv()日本語消失 | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。