PHP5のfgetcsv()関数はロケールと文字コードを正しく設定しなければならない
Nabble - Php Japan - PHP-dev - [PHP-dev 1205] PHP5のfgetcsv()関数について
PHP 5.0 の fgetcsv() はロケールの設定に依存します。
だそうです。
locale の設定はsetlocale() 関数によってスクリプト中で動的に変更可能です。
ので、問題がある時は変更します。
CSV処理は作ってみると想像以上に面倒なのでfgetcsvを利用したいところですが、その陥穽にはまらないように、ということで。気をつけましょう。
関連する記事:
- TCPDFの設定方法
- variables_orderの設定とgetenv()推進キャンペーン : アシアルブログ
- 標準入力からのメール処理でメール情報を取得する
- PHPでWeb Service APIを利用するためのライブラリ群
- PIDファイルを利用してスクリプトの多重起動を抑制する
Powered by MightyAdsense
トラックバック URL :
ロケールが ja_JP.eucJP の場合、
機種依存文字 ( ①㈱など ) が化ける場合があります。
下記サイトでは fgetcsv() の互換関数を用意しています。
http://yossy.iimp.jp/wp/?p=56
コメント by test — 2007/11/29 木曜日 @ 15:06:50
ロケールがeucJPなどの場合に、UTF-8などで作られたcsvの機種依存文字が化けちゃうのは、もう、なんとも出来ないですよね。
URLの互換関数はすごいですね。やっぱりCSVの処理は予想よりも難しい。。
コメント by ne-zu — 2007/12/13 木曜日 @ 21:36:16