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にしておけば良さそう。
関連記事
-
-
composerでライブラリのインストールとインストール時のエラー対応方法
composerでライブラリをインストールする際に「The following ...
-
-
PHPでメール送信時に返信先(Reply-To)を指定する方法
PHPにてメールを送信し、そのメールに対して返信しようとすると通常は送信元のメー ...
-
-
MySQLで重複を除く
ユニークな値を取り出したいときに使う。 DISTINCT(ディスティンクト) S ...
-
-
PHPでCSVファイル出力用の関数
ここのところログ系をCSVファイル出力にするケースが多かった為、使いまわせるよう ...
-
-
Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法
開発環境等メールサーバが無い環境でメール送信テストを行う際にMailtrapとい ...