如何通过PHP将特殊字符写入MySQL?

时间:2010-07-21 18:15:02

标签: php mysql html character-encoding

在某些字段的数据库中,数据显示如下面的屏幕截图所示:

  1. http://i31.tinypic.com/2637l9f.jpg
  2. http://i27.tinypic.com/1ihh6d.jpg
  3. http://i26.tinypic.com/2yklzb4.jpg
  4. http://i31.tinypic.com/2vbshtf.jpg
  5. 我在显示时将数据插入数据库和mysql_real_escape_string时使用了htmlspecialchars

    任何人都可以告诉我他们为什么会这样,并且解决方案是什么?

1 个答案:

答案 0 :(得分:2)

那是Mojibake。您的PHP和MySQL代码尚未准备好World Domination

要正确修复它,请浏览this cheatsheet并确保每个图层都使用UTF-8。


mysql_real_escape_string()基本上只会阻止您SQL injection attacks,而htmlspecialchars()基本上只会阻止您XSS attacks。它们不以任何方式帮助编码或解码字符。使用的字符集对此负责。您的问题是您使用字符集不一致和/或您选择/使用的字符集不支持客户输入和/或您想要使用的字符。