0

特殊文字に問題があります。たとえば。データベースには「A&A」と書かれています(データベースはutf8-unicode-ciに設定されています)。私はautosugestリストで値を正しく取得しています:

while ($row = mysql_fetch_array($result)) {
  $keywords = htmlspecialchars($row['name']);
 echo "<keywords>". $keywords ."</keywords>";       
}

入力フィールドで「A & A」をクリックして選択すると、A & amp; と入力されます。あ

ヘッダーがオンに設定されてい<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ます: 特殊文字を表示する方法を教えてください。

4

3 に答える 3

4

A &amp; Aからに変換する場合は、テキストA&Aで使用htmlspecialchars_decodeします。
から変換する場合は、A&AA &amp; A使用しますhtmlspecialchars

あなたの場合htmlspecialchars、データベースから引き出されたテキストに対する操作を削除するだけで済みます。あなたの問題は&文字が に置き換えられているように見えるので&amp;、おそらく次のようなものを実行する$text = str_replace("&amp;", "&", htmlspecialchars($text));とうまくいき、XSSを防ぎます。

于 2013-08-01T08:26:42.030 に答える
0

rawurlencodeデータベースに値を挿入する前に使用することをお勧めします。次に、値を取得するたびに を使用しますrawurldecode。あなたの問題を解決するかもしれないと思います。

   rawurldecode($row['name']);

これを確認してくださいhttp://php.net/manual/en/function.rawurlencode.php

于 2013-08-01T08:37:59.050 に答える
0

データベースに「A & A」がある場合、htmlspecialchars がそれを行います。

htmlspecialchars を削除します。

于 2013-08-01T08:26:31.150 に答える