支持外国人

时间:2011-02-17 13:57:22

标签: php mysql

我使用PHP / mySQL组合,有时会看到使用某些名称输入的外国字符。我看到它们在mySQL中正确存储,但是当它们在浏览器中输出时会有一些垃圾。 如何在我的网站上支持这些?我不是想支持所有人,也许只是一些基本的支持。

以下示例:

é

3 个答案:

答案 0 :(得分:3)

您必须确保正确理解

  • 使用
  • 提交表单的字符集
  • PHP中的编码处理(这是非常残酷的)
  • MySQL在数据库中使用的编码
  • 您告诉浏览器您的文档的编码

如果这些步骤中的任何一个搞砸了,那么在某些时候你会遇到问题。

我建议您使用utf8来控制所有内容。

FAQ for handling encoding in PHP

答案 1 :(得分:1)

当你走过unicode山谷时,不要害怕。

http://www.joelonsoftware.com/articles/Unicode.html

答案 2 :(得分:0)

我遇到了同样的问题,对我来说,它原来是我用于MySQL的字符编码。 要查看数据库中使用的字符集和排序规则,请尝试发出以下语句:

SELECT TABLE_SCHEMA, TABLE_NAME, CHARACTER_SET_NAME, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
INNER JOIN INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY
  ON (TABLES.TABLE_COLLATION = COLLATION_CHARACTER_SET_APPLICABILITY.COLLATION_NAME)
WHERE TABLE_SCHEMA NOT IN ('mysql', 'INFORMATION_SCHEMA')

如果它们不是utf8或类似的,你应该深入了解你使用的是否支持这些外国字符。

我从this文章中提取该声明,您可能会发现这些声明很有帮助。另请参阅MySQL’s character sets and collations demystified,了解有关该主题的详尽背景信息。