PHPでCSVファイルを出力する際に「①」や「㈱」等の環境依存文字が文字化けする対応方法
過去記事の方法を用いてPHPでCSVファイルを出力すると所々「?」という形に文字化けしている箇所があった。CSVに記入するデータを確認すると「①」や「㈱」等の環境依存文字が文字化けしているっぽい。環境依存文字を使用しないのがベストだけど、何とかこのまま文字化けを解決したかった。以下に対応方法をメモ。
ソースコード
基本的には過去記事のソースコードを使うが以下部分を変更すること。
#変更前
mb_convert_variables('SJIS', 'UTF-8', $csv);
#変更後
mb_convert_variables('SJIS-win', 'UTF-8', $csv);
SJIS-winとは
Windows用の環境依存文字に対応したShift_JISになる。SJISかSJIS-winで迷ったらSJIS-winにしておけば良さそう。
関連記事
-
-
PHPで作成したプログラムをcron設定し自動実行する方法
cronの設定方法。サーバー側での設定とPHP側での書き方を以下にメモ。 &nb ...
-
-
PHPでtwitterとfacebookのいいねやフォローのカウント数を取得する方法
PHPでtwitterとfacebookのいいねやフォロー数を取得して表示させた ...
-
-
PHPにて文字のあいまい検索(文字のゆれ)を実装する方法
Googleで検索する際に、ちょっと間違えて入力してしまっても「もしかして○○? ...
-
-
LINEのURLプレビューを表示させないようPHP側で制御する方法
公開中の特定のページのみLINEのURLプレビューを表示させないよう制御したいと ...
-
-
PHPでExcelシートを出力する方法(PhpSpreadsheet)
PHPでエクセルシートを出力させたい。以前はPHPExcelを利用していたが現在 ...