PHP和MySQL的特殊字符编码的问题
问题描述:
当用户提交一个特殊字符♠
它存储在MySQL数据库作为â�
,如果用户想改变它,而不是将其重新显示为♠
其显示为â�
我怎么能解决这个问题以便将其复制回♠
并保存为♠
?PHP和MySQL的特殊字符编码的问题
在旁注中我应该如何使用PHP保存我的特殊字符?
我使用PHP MySQL的&数据
答
- 用户类型
- 你逃脱数据,以避免SQL注入(不转换的特殊字符的HTML代码等同尚)
- 数据获取存储在数据库中的确切用户如何输入它
- 您将原始数据回退出
- 您通过character encoding function或其他等价物运行原始数据将特殊字符转换为其html代码,从而避免跨站点脚本或html注入
答
这可能是一个问题。
如果要将特殊字符转换为实体,则在输出字段值/ textarea内容时,必须对它们进行编码两次。但它可能会混淆其他角色 - 全部成为它们的实体表示 - 引号,括号等。如果这是你要求的 - 继续。但是,在我看来,编辑这样的文本可能是一个可怕的混乱。
这就是为什么最好不要让用户使用实体。为什么他们不能进入符号本身?
至于数据库中的特殊字符 - 只需在数据库和HTML中使用UTF-8编码即可。
您仍然需要编码对不对? – 2010-08-13 03:27:32
编辑我的答案。 – 2010-08-13 04:08:09
关于UTF-8,还要确保连接设置为UTF-8。 mysql_set_charset('utf8'); – Thomas 2010-08-13 04:11:35