2012-03-12 51 views
0

我们从另一台服务器导入了一个网站到我们的服务器。代码和数据库是100%相同的。 但网站上的文字似乎有错误的编码。网站/数据库文本编码问题

例如: 在数据库中,“澳大利亚”一词是“澳大利亚”,而在澳大利亚网站上则显示澳大利亚文。 我可以修复??添加mysql_set_charset(“utf8”,$ this-> db);数据库连接后。 但是那么它的数据库显示如“澳大利亚”,这是不正确的。我在apache,数据库和元标记之后尝试了不同的编码。

最简单的方法是更改​​数据库中的数据,但要做到这一点需要大量数据。

任何人都有这个问题的解决方案?几个小时来一直在寻找和尝试很多东西。

+0

什么是列数据类型? – 2012-03-12 13:05:03

+0

你的意思是说旧数据库已损坏? – 2012-03-12 13:15:15

+0

该表是utf8_unicode_ci。它在所有有文字的桌子上。旧的数据库没有损坏,但我认为它的数据不是utf8,而表类型是utf8。我认为这是合乎逻辑的,例如澳大利亚是以澳大利亚的数据库而不是澳大利亚的形式保存的。 – Jeffrey 2012-03-12 14:10:52

回答

1

你可以尝试:

  • 设置了MySQL连接校对在数据库中uft8_general_ci
  • 运行SET NAMES 'utf8'SET COLLATION_CONNECTION=utf8_unicode_ci在你的PHP文件
  • 确保所有的PHP文件被保存UTF- 8编码且不具有BOM
  • 请确保表中的单元格是utf8_general_ci
  • 确保MySQL字符设置为UTF-8 Unicode(utf8)

这就是我所拥有的。通过这个设置,我可以看到数据库中的所有字符(phpMyAdmin),因为它们确实出现在网站上。

我也遇到过类似的问题,当我有编码的不匹配,也就是我的数据保存到由ISO-8859-1编码的网站UTF-8数据库...

希望这有助于你。