csvファイル読み込みでの文字化けエラー

csvファイル読み込みの際に文字化けエラーが起こる原因は文字コードが異なることにあります。 .phpファイル内において、これらを解決するためには

mb_convert_encoding($data, 'UTF-8', 'SIJS');
//$dataは読み込む文字列
//'UTF-8'の場所は変換後の文字コード
//'SIJS'の場所は変換前の文字コード

のように変換を行います。この変換で大抵の場合はうまくいきます。 この変換でうまくいかない場合は変換前の文字コードの認識間違いであると考えられます。 csvファイルの変換前の文字コードはターミナルにて以下のコマンドを実行することで文字コードを知ることが出来ます。

file --mime ~.csv

実行結果で得られたcharsetが文字コードになります。ここでわかった文字コードを変換前の文字コードに入れることで文字化けが解決する事が多いのですがまれにエラーが起こるみたいです。 そういった場合はcsvファイルそのものを変換したい文字コードに変換したほうがいいと思われます。 その際、nkfコマンドを利用するので、まずインストールします。

brew install nkf

ファイルの文字コードをUTF-8に変換したい場合は以下のコマンドを

nkf -w --overwrite ~.csv

ファイルの文字コードをSHIFT-JISに変換したい場合は以下のコマンドを

nkf -s --overwrite hoge.html

実行します。これらの実行により、文字化けが解消されると思われます。