【当ブログではアフィリエイト広告を利用しています】

[PHP] fgetcsv等の関数で日本語の一部が消える

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

マルチバイト関数(mb~)ではない「fgetcsv」等でマルチバイト文字がうまく処理できない場合の対応です。

当然、マルチバイト関数ではないので、「mb_language」や「mb_internal_encoding」を指定しても意味はありません。

「fgetcsv」等の関数はロケールの設定に依存するため、下記のような感じでsetlocale()で指定します。

setlocale(LC_ALL, 'ja_JP.Shift_JIS');
setlocale(LC_ALL, 'ja_JP.EUC-JP');
setlocale(LC_ALL, 'ja_JP.UTF-8');

マルチバイト文字列の文字化けや一部消失などは、複数の要因が問題になっていることがありますので、必ずしもこの方法だけで直らなかったり、別の方法で直ったりすることがあります。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。