レッスン 5
HTML エンティティデバッグワークフロー
ログ、エクスポート、混在エンティティ文字列の段階的チェック。
エンティティ出力がおかしいとき、ブラウザがたまたま表示しているものではなく 保存バイト から外向きに作業してください。
ステップ 1: ソースレイヤーを特定
次を問いかけます。
- このフィールドはエスケープ保存、レンダリングエスケープ、または両方か?
- CMS、API、テンプレートのどれが最後に文字列に触れたか?
- バグは 1 行だけか、エクスポートのすべての行か?
ステップ 2: デコードして文字を検査
文字列をデコーダに貼り付け。確認:
&列は単一の&に畳まれるか?- 1 値に名前付きと数値エンティティが混在しているか?
- エンコード → デコードの往復は元テキストと一致するか?
ステップ 3: 不可視空白に注意
通常スペース、タブ、 を比較。nbsp を ·、タブを → とマークするプレビューは CMS デバッグで時間を節約します。
ステップ 4: 問題のあるエクスポートをバッチ処理
CSV やログダンプでは 行ごと に処理。無効エンティティは行番号と正確なトークン(例 &bad; や &#xZZ;)を報告すべきです。
ステップ 5: 正しい境界で修正
- 二重エンコード: エスケープ pass を 1 つ削除するか、テンプレートレイヤー前にデコード
- エンコード不足: 出力時にエスケープし、すべての中間保存ステップではない
- エンティティスタイル誤り: エンコーダ設定を下流 consumer に合わせる
ステップ 6: 文脈で検証
修正後、対象環境で最終 HTML やメールを表示。ブラウザ devtools の解析 DOM テキストは、データベースの生エンティティ文字列と異なることがあります。