PHP和MySQL的特殊字符编码的问题

问题描述:

当用户提交一个特殊字符♠它存储在MySQL数据库作为â�,如果用户想改变它,而不是将其重新显示为♠其显示为â�我怎么能解决这个问题以便将其复制回♠并保存为♠PHP和MySQL的特殊字符编码的问题

在旁注中我应该如何使用PHP保存我的特殊字符?

我使用PHP MySQL的&数据

  1. 用户类型
  2. 你逃脱数据,以避免SQL注入(不转换的特殊字符的HTML代码等同尚)
  3. 数据获取存储在数据库中的确切用户如何输入它
  4. 您将原始数据回退出
  5. 您通过character encoding function或其他等价物运行原始数据将特殊字符转换为其html代码,从而避免跨站点脚本或html注入

这可能是一个问题。
如果要将特殊字符转换为实体,则在输出字段值/ textarea内容时,必须对它们进行编码两次。但它可能会混淆其他角色 - 全部成为它们的实体表示 - 引号,括号等。如果这是你要求的 - 继续。但是,在我看来,编辑这样的文本可能是一个可怕的混乱。
这就是为什么最好不要让用户使用实体。为什么他们不能进入符号本身?

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

+0

您仍然需要编码对不对? – 2010-08-13 03:27:32

+0

编辑我的答案。 – 2010-08-13 04:08:09

+0

关于UTF-8,还要确保连接设置为UTF-8。 mysql_set_charset('utf8'); – Thomas 2010-08-13 04:11:35