2010-10-07 123 views
1

我正在从我的博客中将文章从mysqlDb中检索到我的网站。这些文章在博客上显示得很好,但在网站上,一些字符(如ţ,ş,ă等)被替换为带有问号的黑色方块。我在文档上设置的“UTF-8”与博客上的相同。特殊字符问题

回答

4

你需要告诉MySQL的连接必须以UTF-8进行一些进一步的阅读。为此,请使用功能mysql_set_charset(您需要PHP 5.2.3)。如果你使用PHP 5.2.3 <尝试:

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn); 

还要确保标题告诉该文件是在UTF-8(header功能和/或HTML meta标签正确设置)。

还要确保你的PHP文件保存在UTF-8 没有 a BOM

+0

mysql_set_charset()这是!非常感谢! – andrei 2010-10-07 13:32:12

+0

是的,这是一个常见的陷阱。如果你不这样做,MySQL会将数据即时转换为latin1(相当于utf8_decode)。 – AlexV 2010-10-07 13:33:48

2

你是如何将这些字符添加到文档中的?根据编辑器的不同,保存时编码可能会偏斜。除了使用PHP头指定编码之外,您是否使用META将头文件类型设置为HEAD?

下面是关于这个问题的http://htmlpurifier.org/docs/enduser-utf8.html