2012-04-18 80 views
0

我有几个带有unicode内容的博客,只是将它们迁移到新的服务器CentOS - Apache。现在,unicode字体显示为垃圾,我不知道哪里出了问题。即使使用UTF-8,Unicode字体也会显示为垃圾

我的wp-config和Apache AddDefaultCharset设置为UTF-8。不过,我看到垃圾。

顺便说一下,相同的服务器在非WP页面中很好地服务于Unicode内容。但是,三个WP网站都有这个问题。

示例内容: A®...à®'கியநிறமà¯à®Ÿà¯à®¯à®ªà®šà¯ சà¯à®•à¯à®•à®¿à®³à®¿à®¯à¯‡,

My DB details:mysql> show variables like 'char%'; 
+--------------------------+----------------------------+ 
| Variable_name   | Value      | 
+--------------------------+----------------------------+ 
| character_set_client  | latin1      | 
| character_set_connection | latin1      | 
| character_set_database | latin1      | 
| character_set_filesystem | binary      | 
| character_set_results | latin1      | 
| character_set_server  | latin1      | 
| character_set_system  | utf8      | 
| character_sets_dir  | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.00 sec) 

请让我知道我该如何改变它,这样现有的数据库内容的编码还得到改变。

+0

您是否在迁移后检查了数据库归类? – 2012-04-18 15:32:42

+0

这个问题是正确的,但你有更好的机会获得堆栈溢出的答案,迁移 – Bainternet 2012-04-18 15:33:45

回答

1

您的数据已被错误编码。它的UTF-8数据被解释为CP1252。

>>> print u'அழகிய நிறம'.encode('cp1252').decode('utf-8') 
அழகிய நிறம 
+0

如何纠正它? – San 2012-04-18 15:40:41

+0

而解释发生在?服务器还是db?请帮助我理解。 – San 2012-04-18 15:42:37

+0

使用低级工具,以便您可以看到实际存储在数据库中的字节序列;这将帮助你弄清楚你的下一步是什么。 – 2012-04-18 16:04:33