0

I have an issue with the special characters. For ex. In the database is written "A & A" (database is set on utf8-unicode-ci). I am retrieving in autosugest list the values correctly with:

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

When I click to select the "A & A" in the input field is filled as A & amp; A

the header is set on :<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Can you please let me know how to display the special character?

4

3 回答 3

4

如果要从 转换A &amp; AA&Ahtmlspecialchars_decode请在文本上使用。
如果要转换A&AA &amp; A使用htmlspecialchars.

htmlspecialchars在您的情况下,对从数据库中提取的文本进行删除操作即可。由于您的问题似乎与&被替换的字符有关&amp;,因此运行类似的东西可能$text = str_replace("&amp;", "&", htmlspecialchars($text));会更好地为您工作,并防止 XSS。

于 2013-08-01T08:26:42.030 回答
0

如果数据库中有“A & A”,htmlspecialchars 会这样做。

删除 htmlspecialchars。

于 2013-08-01T08:26:31.150 回答
0

rawurlencode在将值插入数据库之前更好地使用它。然后,每当您获取值时,请使用rawurldecode. 我认为它可以解决你的问题。

   rawurldecode($row['name']);

检查这个http://php.net/manual/en/function.rawurlencode.php

于 2013-08-01T08:37:59.050 回答