htmlspecialchars 関数では、ENT_SUBSTITUTE フラグを設定すると、無効な文字が置き換えられるはずです。
置き換えられる文字は?また、無効な文字とそれを置き換えるために使用される文字との間のマッピングは何ですか?
htmlspecialchars 関数では、ENT_SUBSTITUTE フラグを設定すると、無効な文字が置き換えられるはずです。
置き換えられる文字は?また、無効な文字とそれを置き換えるために使用される文字との間のマッピングは何ですか?
普遍的な置換文字は、U+FFFD の 1 つだけです。UTF-8 で書き出す場合、このコードポイントは適切にエンコードされます。そうでない場合は、代わりに対応する文字参照を取得します�
。
可逆マッピングはありません。定義上、元のバイト シーケンスは無効でした。つまり、値がありません(有効 = 値があります)。
置き換えられるバイト (実際には「文字」ではない) は、想定されるソース エンコーディングでは無効なバイトです。たとえば、ソース エンコーディングが UTF-16 で、サロゲートが 1 つしかない場合、それは「無効」になります (ただし、技術的には、テキスト プロセッサはそのような状況では致命的に異常終了するはずです)。より良い例として、ソース エンコーディングが ASCII の場合、127 を超える値は無効な文字です。