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にしておけば良さそう。
関連記事
-
-
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...
-
-
PHPでランダムなカラーコードを生成する「RandomColor.php」ライブラリの利用方法
PHPでランダムなカラーコードを生成したい。自作するとなると「0~9」「a~f」 ...
-
-
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...
-
-
PHPで配列じゃないものに対してソート
PHP Warning: sort() expects parameter 1 ...
-
-
CodeIgniter3でCronを実行する方法
CodeIgniter3系で特定の処理をCronで自動実行したかった。以下に設定 ...