2011-02-17 90 views
0

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

下例:

é 
+1

什么是您在页面上使用的字符集? – 2011-02-17 13:58:45

+0

不要忘记在查询前询问SET NAMES utf8 – dynamic 2011-02-17 14:12:13

回答

3

你必须确保你正确认识

  • 形式与
  • PHP中的编码移交(这是残暴)提交的字符集
  • MySQL在数据库中使用的编码
  • 您的编码删除您的文档中的浏览器

如果这些步骤中的任何一个出现混乱,您在某个时候会遇到问题。

我建议你使用utf8来控制你所有的东西。

FAQ for handling encoding in PHP

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了解有关该主题的相当全面的背景。