PHPの文字化け対策
2014/07/03
PHPファイルもDBも全部UTF-8で出来たらいいけど、
そうもいかない場合が多いので文字化け対策。
-----
■headerでデータタイプを宣言する
header("Content-type: text/html charset=Shift_JIS");
-----
■mb_internal_encodingで内部コードを設定する。
mb_internal_encoding("UTF-8");
※引数なしだと現在の内部コードを表示できるとのこと。
echo mb_internal_encoding();
-----
■urlencodeでURLエンコード
echo '<a href="index.php?name=', urlencode($str),'">';
日本語をクエリで送る際とかに使用する。
文字コード変えて送ることも出来るが、
どうにもならない時はこれを試す。
-----
■mb_convert_encodingで文字コードを変換する
$str = mb_convert_encoding($str, "EUC-JP", "UTF-8");
これだとUTF-8からEUC-JPへの変換になる。
現在の文字コードをauto指定すると自動検出可能だが
厳密ではないらしい。
-----
■mb_detect_encodingで現在の文字コードを調べる
echo mb_detect_encoding($str);
これはあんまり厳密な判定じゃないらしい。
-----
■DB接続時にset namesを使う
mysql_query("SET NAMES ujis");
脆弱性があるらしい。
-----
■mysql_set_charsetで文字コード指定
mysql_set_charset('utf8');
PHP5.2.2以上で使えるとのこと。
会社のサーバーのPHPバージョンは未確認。
-----
以上。
関連記事
Codeigniter4で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法
Codeigniter4.4.4でCSS及びJavaScriptファイルを設置し ...
PHPで土日祝日及び営業時間を考慮した上で翌○営業日を計算する方法
PHPで翌○営業日を計算したい。例えば本日が2021/04/15で翌5営業日を計 ...
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...
MySQLでのエラーについて
エラーログをとるようになってから色々エラーを 見る機会が出来てきたのでメモ。 プ ...
PHPでjpg / png画像をWebP画像に変換し保存する方法
PHPでjpg / png画像を圧縮したかった。ただjpg / pngのままだと ...