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でBlowfishアルゴリズムを用いた暗号化と復号化方法
PHPでBlowfishアルゴリズムを用いてCBCモードで暗号化と復号化を行いた ...
-
-
PHPでeval実行時に「eval()'d code on line」エラー
PHPでeval実行時に「eval()'d code on line 〇〇」とい ...
-
-
PHPでユーザID毎にディレクトリを作成しキャッシュファイルを格納する方法
PHPで作ったプログラム内にてユーザーID毎に特定のディレクトリを作成し、その中 ...
-
-
PhpSpreadsheetでフォーマット用のエクセルを読み込み、指定したセルにデータを書き込んだ上で別名で保存する方法
PHPで納品書等のフォーマット用のExcelを読み込み、指定したセルにデータを書 ...
-
-
PHPのエラーメッセージ及びvar_dumpを見やすく表示するライブラリ「Tracy」の利用方法
ここのところPHPでの開発時にvar_dumpをツールバー表示する「Kint」及 ...