wordpress数据库乱码解决方案

刚才有朋友一直跟我湖南seo点点反应说网站速度慢,其原因在于本站之前web跟数据库不是在一台服务器的,从而影响网站打开速度。
为此现在把数据库跟web放到一台服务器了,但是在数据迁移过程中出现了文章乱码情况,为此在这总结一下个人经验。。。
从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。
其实简单的方法是通过phpMyAdmin来设置。
设置下面几项:

1: 语言设置为 chinese (zh-utf-8)
2: MySQL 字符集: UTF-8 Unicode (utf8)
3: MySQL 连接校对: utf8_general_ci
4: 新增数据库和数据表的时候,整理项选择 utf8_general_ci

通过以上设置,在phpMyAdmin中操作和查询的时候,中文字符都不会乱码了。
但是你会发现,在php程序中用以前的sql语句查询出来的结果还是乱码,问题就出在connection连接层上。
解决方法是在成功连接数据库之后,发送一句查询语句:

1: $this->LinkID = @mysql_connect($this->Host, $this->User, $this->Password);
2: @mysql_query(‘SET NAMES ‘utf8”, $this->LinkID);

才把资料库汇入到MySQL之后,就发现资料库内所有中文字都变成乱码了。搞了半天才知道要设定资料库栏位的”校对”。资料库的内容正确之后,又发现输出到网页上的中文字变成一堆????。为著解决这个问题必须去修改wp-includes/wp-db.php内的资料连线设定。详细的修改方式是这样的:

$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
//加上下面这行
$this->query(“SET NAMES ‘utf8′“);

改完之后才算是完整的解决乱码的问题。

升级到2.3.2以后,以上的方法已经不管用了,新的方法是在

$this->ready = true;
//下面加上
$this->query(“SET NAMES ‘utf8′“);

这样才OK

评论

  1. 15 年前
    2010-6-01 7:45:56

    我还没有遇到类似的问题,先学习一下,未雨绸缪!

  2. 15 年前
    2010-6-02 7:01:20

    遇到过这个问题,确实需要关注的

  3. 13 年前
    2012-1-28 0:26:00

    最近也为这事头疼。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇