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');