2011-03-01 46 views
1

我正在将mysql数据库从一个站点迁移到另一个站点。如何正确设置文件,数据库,连接等的编码?

其encodign:UTF8

其连接encodign:utf8_unicode_ci

该站点的PHP文件中使用的编码:UTF8无BOM

在头中的编码在每一页该网站:utf-8

一切工作正常,在该网站。

然后我使用phpmyadmin导出数据库。 它生成一个.sql文件,用utf-8编码,当我打开它时,一切都很好。

然后我将该文件复制到新站点,该站点对所有内容使用相同的编码,并将其导入。

当我通过网页显示旧网站中的数据时,显示的是破损的字符。例如:™=> 。

如果我将浏览器的编码从utf-8转换为iso-8859-1,我会看到正确的符号。

新网站中的其他一切正常工作,我没有编码问题后,保存到数据库的东西,并将其拉回。唯一奇怪的是,当我浏览存储的数据时,phpmyadmin显示破碎的字符。但是在网站上显示内容时我没有这个问题。

我做了导入两个不同的程序:phpmyadmin和webmin。

所以我不知道这里有什么问题,有什么想法吗?

我应该如何配置编码,这样才不会发生?

回答

2

也许在第一个站点中,您没有设置连接编码(请参阅php中的mysql_client_encoding()的输出)。 如果这是您以不正确格式存储数据的问题,并且您还使用相同的错误行为正确地将其转换回来。

p.s. utf8_unicode_ci不是一种编码,是一种排序规则(如何订购字符串)

+0

哇,你是个天才。旧网站的连接是'latin1'。谢谢! – HappyDeveloper 2011-03-01 17:50:37

0

这发生在我以前与旧网站,它是在不同的排序规则,所以一旦你试图改变它为UTF8它显示了奇怪的符号遍。

有时phpmyadmin后台显示奇怪的代码,但该网站显示没问题。

相关问题