MySQL整理和PHP字符集冲突

时间:2011-05-09 09:42:42

标签: php mysql character-encoding collation

我从latin-1 MySQL数据库中获取了一堆丹麦文本,并在PHP中回显时正确显示。当我需要回显一些其他丹麦字符时,问题就开始了,这些字符不是从数据库中获取的。

我所做的实际上是输出标题

Content-Type: text/html; charset=iso-8859-1

也可以让未查询的字符正确显示。

问题是,当我这样做时,查询的字符显示不正确。

2 个答案:

答案 0 :(得分:3)

仅仅因为数据存储在latin-1整理表中并不意味着它是latin-1编码的。这是因为当连接SET NAMES设置与排序规则相同时,MySQL不会进行任何字符转换。

我怀疑你在latin1数据库中存储了一些UTF8字符,这使问题混乱。

如需更多帮助,请添加以下内容的详细信息:

  • 您已设置的MySQL连接编码
  • “未查询”字符的来源详情

答案 1 :(得分:0)

使用unicode。 UTF-8 =>正确的方式。

因此,在数据库中设置utf8_unicode_ci,在页面字符集中设置UTF-8,在查询设置mysql_query之前设置(“SET NAMES UTF8”);