この質問は私に教えてくれます
htmlentities は、htmlentities() を除いてすべての点で htmlspecialchars() と同じです。HTML 文字エンティティに相当するすべての文字がこれらのエンティティに変換されます。
私が欲しいのは htmlentities のようです。
次に、この質問は、このエラーを取り除くために「UTF-8」引数が必要であることを教えてくれます:
Invalid multibyte sequence in argument
だから、ここに私のエンコーディングラッパー関数があります(異なるPHPバージョン間で動作を正規化するため)
function html_entities ($s)
{
return htmlentities ($s, ENT_COMPAT /* ENT_HTML401 */, "UTF-8");
}
「引数のマルチバイト シーケンス」エラーが引き続き発生します。
エラーをトリガーするサンプル文字列を次に示します。これは 16 進エンコードです。
ジゲ ア バプティスト
4a 69 67 75 65 20 e0 20 - 42 61 70 74 69 73 74 65
à は 0xe0 としてエンコードされていますが、0x80 を超える単一バイトとしてエンコードされていることに気付きました。
私は何を間違っていますか?