勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPでCSVファイルを出力する際に「①」や「㈱」等の環境依存文字が文字化けする対応方法

  PHP

過去記事の方法を用いて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

  関連記事

PHPでdo-while(0)構文を利用する際のメリット
PHPでdo-while(0)構文を利用する際のメリット

あるソースコード上にdo-whileという構文が使われていた。見たことのない構文 ...

PHPで多次元連想配列のキーを指定してソートする方法
PHPで多次元連想配列のキーを指定してソートする方法

PHPで多次元配列から指定したキーでソート(並べ替え)したい。以下に対応方法をメ ...

PHPMailerでメールを送信する際にTLS / SSL暗号化させる方法
PHPMailerでメールを送信する際にTLS / SSL暗号化させる方法

PHPMailerでメールを送信したところGmailで確認すると赤い鍵のようなア ...

PHPで配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法
PHPで配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法

PHPで配列を確認する際、大抵var_dumpで出力させているがこれが見づらい。 ...

Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法

Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...