570 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除外簡易実装済2026-01-04: 0回 2026-01-03: 1回 2026-01-02: 2回 2026-01-01: 0回 2025-12-31: 0回 2025-12-30: 0回 2025-12-29: 0回