htmlspecialchars()は、次のような特殊文字を変換しているようです: āķūņūķīそれぞれのエンティティ番号に:
ā ķ ū ņ ū ķ ī
次のように、翻訳されていないものもあります。
žš
これらのアルファベットタイプの文字を翻訳しないようにしたいhtmlspecialchars()
(または他の関数) ...( php.netのマニュアルに示されているように)次の文字のみを翻訳するようにします。
- ' & '(アンパサンド)は'&'になります
- ' " '(二重引用符)は'"'になります ENT_NOQUOTESが設定されていない場合。
- " ' "(一重引用符)は'''になります ENT_QUOTESが設定されている場合のみ。
- ' < '(未満)は'&lt;'になります
- ' > '(より大きい)は'&gt;'になります
これが必要な理由は、POSTリクエストの後、このユーザー入力を実行してhtmlspecialchars()
から、新しいHTML入力のセットに戻すためです。&、 "、'、<、>などの文字は、表示エラーなどが発生しないように変換する必要があります。ただし、' āķūņūķī 'などの特殊文字は変更しないでください。そうしないと、ユーザーは非常に混乱します。