[PHP-users 32112] Re: fgetcsv関数で日本語を含むCSVファイルが読み込めない

Takekatsu HIRAMURA hiratake55 @ gmail.com
2007年 5月 11日 (金) 00:12:22 JST


小林様

アドバイス、ありがとうございます。
setlocale()がうまくいかなかったので、応急処置として全ての要素に""(ダブルクオーテーション)をつけることで解決させました。

また機会がありましたら、詳しく突き止めてみたいと考えています。
どうもありがとうございました。

07/05/10 に Masanori Kobayashi<markun @ leo.bekkoame.ne.jp> さんは書きました:
> 平村さんへ
>
> 小林といいます。
> 以前、わたしもfgetcsvでは苦労しました。
> fgetcsv()とsetlocale()とスレッドに関するごたごたについては、以前私がこの
> メーリングリストに投げて、記録が残っています。[PHP-users 28080]のあたり
> です。
> php5.x以降だったかな、fgetcsvなどの関数はローケルの設定に影響されるよう
> になったようです。わたしは、読み込むファイルの文字コードに合わせてローケ
> ルを変更してから各関数でファイルを読み込むようにしています。
> 「setlocale()」関数をつかって動的に設定を変更します。使用上の注意はプロ
> セスごとにローケルを変更するので、Windows系のOSのようにスレッドで管理し
> ているOSで使用すると不具合が発生するようです。
> 詳細はこちらの説明をご覧ください。
> http://jp.php.net/manual/ja/function.setlocale.php
>
> 1. setlocale()で読み込むファイルと同じ文字コードに変更する。
> 2. fgetcsv()などでファイルを読み込む。
> 3. setlocale()で元のローケルに戻す。
>
> 読み込むファイルの文字コードとシステムのローケルが一致していれば、このよ
> うな面倒な手順はしなくても良いです。
>
> ほかにも良い方法があるのかな・・・。
> では。
>
>
> --
> _/_/ Masanori Kobayashi
> _/_/ mailto:markun @ leo.bekkoame.ne.jp
> _/_/ mailto:PXK11641 @ nifty.com
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>


-- 
平村 健勝 (Takekatsu HIRAMURA)


PHP-users メーリングリストの案内