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でbool値(true / false)を文字列として出力する方法
PHPにてbool値(true / false)をechoで出力するとtrueは ...
-
-
PhpSpreadsheetで文字色の変更、太字化、セルの色の変更を行う方法
以前PHPとPhpSpreadsheetを用いてExcelシートを出力する方法を ...
-
-
php.iniを変更後にApacheを再起動しても反映されない場合の対応方法
先日AlmaLinux8系にChronyをインストールしてサーバの時刻同期を行っ ...
-
-
mpdfで「The /e modifier is …」エラー発生時の対応方法
pdf関連のPHPライブラリ「mPDF」を使っているページがエラーログにのってお ...
-
-
GoogleアナリティクスのデータをPHPで取得する方法
Googleアナリティクスの特定データをPHPで取得して、当該データを表示なりC ...