PHP&;MySQL特殊字符编码问题

PHP&;MySQL特殊字符编码问题,php,mysql,Php,Mysql,当用户提交特殊字符时&spades它以的形式存储在MySQL数据库中�

当用户提交特殊字符时
&spades它以
的形式存储在MySQL数据库中�&spades其显示为
如何解决此问题,使其DSI显示为
&spades并另存为
&黑桃

另一方面,我应该如何使用PHP保存我的特殊字符

我正在使用PHP和MySQL

  • 数据中的用户类型
  • 转义该数据以避免SQL注入(不要将特殊字符转换为等效的html代码)
  • 数据以用户键入的方式存储在数据库中
  • 你把原始数据拉回来
  • 您可以通过一个或类似的程序运行原始数据,将特殊字符转换为它们的html代码,从而避免跨站点脚本或html注入

  • 这可能是个问题。
    如果要将特殊字符转换为实体,则在输出为字段值/文本区域内容时,必须对其进行两次htmlencode。但它可能会弄乱其他字符——所有字符都会成为它们的实体表示形式——引号、括号等等。如果这是你想要的,那就去吧。但是,在我看来,编辑这样一篇文章可能会是一团乱麻。
    这就是为什么最好不要让用户使用实体。为什么他们不能输入符号本身


    至于数据库中的特殊字符,只需在数据库和HTML中使用UTF-8编码即可

    关于UTF-8,还要确保连接设置为UTF-8。mysql_集_字符集('utf8');