0

フォームに入力された一部のユーザーをエスケープしようとしています。

if( !empty($_SESSION['descr']) )
{
    $descr = htmlentities($_SESSION['descr']);
    $descr = stripslashes($descr);
    $descr = html_entity_decode($descr); 

    echo"<textarea cols=\"50\" rows=\"10\" name=\"descr\" >".$descr."</textarea>";
}
else
{
    echo "<textarea cols=\"50\" rows=\"10\" name=\"descr\" ></textarea>";
}

そもそもhtml_entity_decode()を使用していなかったので、ユーザーがフランス語の文字を入力すると、正しく表示されないことに気付きました。html_entity_decode()と同じように使用するのは節約できますか?

4

1 に答える 1

0

文字列のエンコーディングをISO-8859-15に変更する必要があります。これにより、LATIN-1で欠落している文字(つまり、フランス語の文字)が検出されます。

$descr = htmlentities($desc,ENT_COMPAT,'ISO-8859-15');

ENT_COMPATはあなたが探している旗ではないかもしれませんが、マニュアルで字幕を見つけることができます。

于 2012-11-27T03:53:07.277 に答える