勉強したことのメモ

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

  関連記事

Laravel 13系でタイムゾーンと言語設定方法
Laravel 13系でタイムゾーンと言語設定方法

先日「laravel-debugbar」を導入したので色々触って試してみたところ ...

PHPMailerを使ってメールをSMTP送信する方法(Composer無し)
PHPMailerを使ってメールをSMTP送信する方法(Composer無し)

PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...

PHPにて「hashids(Sqids)」ライブラリで数値からユニークなランダム英数字のIDに変換する方法
PHPにて「hashids(Sqids)」ライブラリで数値からユニークなランダム英数字のIDに変換する方法

PHPにてユーザID等を推測されないよう数値のIDからユニークなランダム英数字の ...

PHPでプロキシ経由で他サーバーに接続する方法(file_get_contents / curlの2パターン)
PHPでプロキシ経由で他サーバーに接続する方法(file_get_contents / curlの2パターン)

PHPでfile_get_contentsやcurlで他サーバに接続する際に自サ ...

Podmanで導入したPHPの設定ファイル(php.ini)変更と高速化に関する設定方法
Podmanで導入したPHPの設定ファイル(php.ini)変更と高速化に関する設定方法

Podmanで導入したPHPの設定ファイル(php.ini)の内容を変更したい。 ...