0

次の文字列を考えてみましょう。UTF-16-LE でエンコードされ、PHP 変数に保存されます。mbstring または iconv で ' を一重引用符に置き換えることができませんでした。それを消毒する良い方法は何でしょうか。

弦:カール・セーガン'のコズミック・コネクション

4

1 に答える 1

1

私が質問を誤解していない限り'、UTF-16の問題ではありません。その文字列はそれを持っているhtmlspecialchars()htmlentities()実行されており、一重引用符は html エンティティ表現に変換されました'

通常の状態に戻すには、 html_entity_decode()を実行する必要があります。

一般に、出力時にのみ html エンコーディングを実行する必要があるため、その種の変換を永続化することは避けます。この種の文字列を取得するためにどこかで HTML 入力を取り込んでいる場合は、UTF 変換と保存を行う前に、おそらくエンティティをデコードする必要があります。

于 2009-07-28T21:41:31.530 に答える