在某些字段的数据库中,数据显示如下面的屏幕截图所示:
我在显示时将数据插入数据库和mysql_real_escape_string
时使用了htmlspecialchars
。
任何人都可以告诉我他们为什么会这样,并且解决方案是什么?
答案 0 :(得分:2)
那是Mojibake。您的PHP和MySQL代码尚未准备好World Domination。
要正确修复它,请浏览this cheatsheet并确保每个图层都使用UTF-8。
mysql_real_escape_string()
基本上只会阻止您SQL injection attacks,而htmlspecialchars()
基本上只会阻止您XSS attacks。它们不以任何方式帮助编码或解码字符。使用的字符集对此负责。您的问题是您使用字符集不一致和/或您选择/使用的字符集不支持客户输入和/或您想要使用的字符。