537 views
問題発生
DBでは照合順序に utf8mb4_unicode_520_ci(かなり多くの絵文字に対応している文字コード)を設定している。
もちろん、テーブルとカラムにも utf8mb4_unicode_520_ci を設定している。
しかし、Webページで表示すると ??? と表示されてしまう・・・
チェック
Check 1 : HTTP応答時の文字コードは?
サーバー側の PHPプログラムで以下のように HTTPレスポンスを返す個所を変更してみた。
Before:
header('Content-Type: application/json');
After:
header('Content-Type: application/json; charset=UTF-8;');
ダメだ・・・変わらない。
Check 2 : DB接続時の文字コード指定は?
PDOクラスを使ってDB接続時に、文字コードの指定を変更してみた。
Before:
$dbH = new PDO('mysql:dbname=XXXXX;host=YYYYY;charset=utf8');
After:
$dbH = new PDO('mysql:dbname=XXXXX;host=YYYYY;charset=utf8mb4');
これだった!
🔍 ← 絵文字が正しく表示されるようになった!
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2025-12-14: 5回 2025-12-13: 1回 2025-12-12: 3回 2025-12-11: 2回 2025-12-10: 1回 2025-12-09: 0回 2025-12-08: 7回