PHP 日本語文字化け
日本語文字化けには、様々な要因で引きおこる現象である。
これまでHTMLのUTF8宣言、PHPコードによる内部コード宣言など、その都度クリアしてきた課題である。
今回、デモ環境の構築中に起きた事象で、PHPの最新バージョンでの試行であった。少々原因解決に時間を要したので、その思いも込めてここに記載する。
上図システムは、勤務時間を管理する打刻システム(ウェブ版)である。PHPベース、V7.2.4で構築していたが、デモ環境を構築するにあたり最新バージョン8.2.12にシステム移行を行った。
従業員名の欄のとおり「?」文字化けしている。
固定文字が化けていないので、DB周りに特定し原因を調査した結果、基本的なところ(DBのコネクト部分)での修正で解決となった。
DB接続は、PDO プリペアドステートメントという仕組みを使っている。
コード
接続時、(utf8)キャラクタコードを指定することで日本語文字化け問題は解決となった。