MySQL 4.1x 中文乱码问题

现在多数host装的还是MySQL 4.0x 版本以下,如果升级到了4.1x 或者移动到使用4.1x 的主机上,估计会遇到一些问题。我在powweb上遇到了两个问题。

一是数据导入。在phpMyAdmin内导入后,发现中文变成了乱码。搜索学习后,了解到需要设置数据库的collation (校勘),如果你的数据库是utf-8的,设置为utf8_general_ci就可以了。

二是,即使正确导入了,在phpMyAdmin里也能正确显示,但WordPress页面上显示的文章内容都是“???”,而模板里面的汉字都能正常显示。这让我头疼了很久。搜索到Windix’s Weblog上有对此的说明:

从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章”Character Set Support“后终于找到了解决方法并测试通过。

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

SET NAMES ‘utf8′;

但是我依旧不知道,如何,在何处让WordPress运行这个SQL语句。后来在阿修的部落格上查到办法:

為著解決這個問題必須去修改wp-includes/wp-db.php內的資料連線設定。詳細的修改方式是這樣的:

$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
//加上下面這行
$this->query("SET NAMES 'utf8'");

这样子终于能正常显示中文的WordPress了。虽然后来还是没用Powweb,但是觉得这个经验会对别人有用。记得有人用email和我讨论过这样子的中文显示问题,但是我那时哪里知道问题出在MySQL 4.1x上。

还有,4.1x的数据库不向下兼容,所以升级的时候要三思啊。

订阅到鲜果

“MySQL 4.1x 中文乱码问题” 有 125 个回响

  1. 1
    shunz 说:

    终于又能访问了。

  2. 2
    大脑袋 说:

    “记得有人用email和我讨论过这样子的中文显示问题”,这个“有人”是我。

    我之前也用的是 Powweb,正月初一开始不能访问。写信问客服,说是GFW挡了同一台服务器的某站点,所以整个服务器都不能在大陆访问到。只好退钱,也幸亏还能退钱。国内的基本不能退钱,比如见鬼的神话科技。

  3. 3
    桑林冯 说:

    原来是你。:)

    神话科技害你很深啊,到处看你指出神话科技的鬼。这样子好,后来人就不用重复这经验了。

  4. 4
    Dark 说:

    晕了,早没看到这个文章。最后使用还原才解决问题。偶现在是数据库里面是乱码(部分表是拉丁瑞典语整理,就是操作为UTF8也不行),但页面读取是正常的UTF8,显示也正常。
    偶的详细经历。有空再详细研究一下这个问题。

  5. 5
    qyb 说:

    但偶提交的 mysql ISAM utf-8 bug 还一直没有解决的说..

    http://bugs.mysql.com/bug.php?id=9557

  6. 6
    pp 说:

    我是用ASP链接 4.1的MYSQL老是显示???把我烦死了。怎么办怎办

  7. 7
    zy 说:

    看了手册第10章觉得主要还是Character Sets的问题。
    character_set_client,character_set_results,character_set_connection三个运行变量是造成乱码的关键。mysql把客户端提交的查询由character_set_client转换为character_set_connection
    ,由于默认网页提交的查询是gb2312(表单页面meta里可以看到),而mysql默认将其当作utf8(可以查到此时的character_set_client=utf8),所以必然乱码。同理,mysql返回的结果是已经转换成character_set_results编码的(与表的编码无关),同样默认是utf8,而网页页面把它当gb2312处理,所以必然有标题等由数据库读出的字段是乱码而其他部门文字不乱码的现象。

  8. 8
    zy 说:

    感觉mysql 4.1+对字符集的支持真是相当的灵活。再强的数据库也不过如此吧,嘿嘿。

  9. 9
    sunfire 说:

    我的mysql连接校对用的是gb2312
    所以用 @mysql_query(”SET NAMES ‘gb2312′”);
    才能显示成功。
    虽然有点麻烦,不过总算解决这个头疼问题了,xx!

  10. 10
    reins 说:

    请教站长,在UTF8模式下,存取数据库没有问题,而且页面显示也正常,可是一查看源码,所有的中文立马变成了乱码?为这个我郁闷了好久,到现在还没有解决。
    我看贵站的Blog好像也存在这个问题,有没有去研究,或者有没有相关的经验分享一下?

  11. 11
    W. Chen 说:

    to reins:

    查看源文件中出现乱码不是因为数据库或UTF-8的原因!而是由于你的theme里边有不规范的代码!典型的错误是使用了中文的引号,这常常是因为你在设计theme的时候,从别的WordPress网站上复制了一些代码,而WordPress会把任何中英文的引号都转化为中文的引号,这就造成了错误!

    为确认是这个错误,你只要更改你的theme为WordPress的默认模板default,再检查会不会产生乱码??!如果没有乱码,就说明你自己设计的theme有问题!

    解决方法:检查你的theme,看看有没有不合规范的代码,特别注意中英文的引号问题!

  12. 12
    Blog 说:

    MySQL 4.1x 中文乱码问题

    MySQL 4.1x 中文乱码问题

  13. 13
    Zhou's Blog 说:

    MySQL 4.1x 中文乱码问题

    原文地址:
    MySQL 4.1x 中文乱码问题
    现在多数host装的还是MySQL 4.0x 版本以下,如果升级到了4.1x 或者移动到使用4.1x 的主机上,估计会遇到一些问题。我在powweb上遇到了两个问题。
    一是数…

  14. 14
    metaldudu 说:

    搬家过程中也遇到乱码,很麻烦啊。

  15. 15
    sID's secret 说:

    MYSQL 4.1X的乱码完全攻略

    Mysql 4.1x,乱码,tt,plog

  16. 16
    Just a Sidekick...... 说:

    推介:免費的Wordpress Blog Hosting-InnerEyes

  17. 17
    Fwolf's Blog 说:

    WordPress开张~

    虽然plog是一个很好的多用户blog系统,但我在ä½

  18. 18
    Fwolf 说:

    引用通告过来怎么会是乱码呢??

  19. 19
    桑葚 说:

    我也不清楚,有的trackback正常,有个trackback不正常。估计还是MySql的问题。

  20. 20
    高飞 gaofei's blog: show-id 说:

    用Wordpress搭建的一个Blog

    这是用wordpress搭建的一个blog。很长时间没碰过技术了,也ä

  21. 21
    高飞 说:

    果然征文trackback还是乱码。用technotri搜索也是如此。不知如何解决。好像我的mysql还不是4.1x。

  22. 22
    Fwolf 说:

    问题是你的还是我的MYSQL的问题啊?
    我这里全部是4.1,UTF8编码,应该没问题吧?

    btw: 怎么把trackback叫征文啊,很别扭

  23. 23
    桑葚 说:

    我的也是4.1,UTF8。:)

  24. 24
    高飞 说:

    征文trackback打错了,是说trackback的正文部分是乱码,标题却不是。

  25. 25
    Vic 说:

    弄了半天,最後全靠這篇文章。謝謝!

  26. 26
    Fwolf 说:

    刚才又G了一下,发现tb的乱码不光是出现在wp中
    原因是tb协议不支持多内码。。。
    如果想解决这个问题,需要修改tb协议。。。
    或者手工修改tb接收部分的处理方式。。。
    期待wp官方出现解决方案

  27. 27
    nardo 说:

    数据库为4.1 UTF-8,网页全用了UTF-8,数据库能正常显示中文,日文,繁体中文,但不能显示韩文,请教各位了,谢谢!!!

  28. 28
    wskaps 说:

    请大侠帮帮忙.
    我配的是IIS+MYSQL5+PHP5+phpMyAdmin 2.6.4-rc1
    MYSQL5,和phpMyAdmin 2.6.4-rc1中的中文显示正常,但是用PHP显数据里的中文数据时就出显几个”???”号,而且编码也是GB2312,用set names ‘gb2312′,还是不行.
    其它的什么,charater_set_result ,charater_set_sever,charater_set_database,等都改成了GB2312,只有一个charater_set_system 是utf8,这个是只读属性改不掉!
    但还是不行,,,

  29. 29
    wskaps 说:

    请大侠帮帮忙,
    我的配置是IIS5+MYSQL5+PHP5+phpMyAdmin 2.6.4-rc1
    在MYSQL和phpMyAdmin 中的中文显示很好,
    但当我用

    下面是用户数库的所有内容:

    \n”;
    echo”学号姓名”;
    echo”QQE_mail”;
    echo”性别地址”;
    echo”\n”;

    while($myrow=MySQL_fetch_row($result))
    {
    printf(”%s%s”,$myrow[0],$myrow[1]);
    printf(”%s%s”,$myrow[2],$myrow[3]);
    printf(”%s%s”,$myrow[4],$myrow[5]);
    printf(”%s”,$myrow[6]);
    }
    echo”\n”;
    ?>

    显示之后出现了:下面是用户数库的所有内容:
    学号 姓名 QQ E_mail 性别 地址

    20044415 ?? 357657132 wskaps@yahoo.com.cn F ???
    20044416 ?? 54621378 chengyong@163.com F NULL
    20044417 ??? 402572538 NULL F NULL

    其中???是显示不出来的中文,不知道怎么回事,也不是浏览器编码的问题,,,
    请大侠帮帮忙!!!谢谢!!

    mysql> SHOW VARIABLES LIKE ‘character_set_%’;
    +————————–+—————————-+
    | Variable_name | Value |
    +————————–+—————————-+
    | character_set_client | gb2312 |
    | character_set_connection | gb2312 |
    | character_set_database | gb2312 |
    | character_set_results | gb2312 |
    | character_set_server | gb2312 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    +————————–+—————————-+
    7 rows in set (0.00 sec)

    mysql> SHOW VARIABLES LIKE ‘collation_%’;
    +———————-+——————-+
    | Variable_name | Value |
    +———————-+——————-+
    | collation_connection | gb2312_chinese_ci |
    | collation_database | gb2312_chinese_ci |
    | collation_server | gb2312_chinese_ci |
    +———————-+——————-+
    3 rows in set (0.00 sec)

  30. 30
    桑葚 说:

    我不懂技术的说,希望访问这里的朋友能帮上你。

  31. 31
    Antonio 说:

    在官方找了N久都没搜到相关的资料。

    早知道就不用浪费500M空间了。

  32. 32
    苟世录 说:

    MYSQL4.1下的乱码问题

    主机搬迁的时候曾遇到一个数据库版本的问题,数据从Mysql4.0X导入4.1X,中文字符全变成“???”,一直未找到解决办法,今天看到桑林志处有相关的解决方案。
    為著解決這個問題必須去修…

  33. 33
    nzs 说:

    – phpMyAdmin SQL Dump
    – version 2.6.4
    http://www.phpmyadmin.net

    – 主机: localhost
    – 生成日期: 2005 年 12 月 08 日 16:46
    – 服务器版本: 4.1.9
    – PHP 版本: 4.4.1

    – 数据库: `guestbook`


    – 导出表中的数据 `guestbook`

    INSERT INTO `guestbook` VALUES (’Äþ×óÉý’, ‘Ê¯ÅÆ¶«’, ‘wwerk@163.com’, ‘http://www.google.com’, ‘kjjnkn’);

    数据乱码,郁闷了好几天,mysql 4.1.9

  34. 34
    liaoguihui 说:

    我也碰到MYSQL 5。0 存入中文数据后,数据显示乱码也

  35. 35
    Fwolf 说:

    楼上几位遇到MYSQL乱码的朋友
    记得在MYSQL 4.1以后添加了多字符集的支持
    记得服务器字符集、客户端连接的字符集必须要一样才行
    相关的文章很多
    动一下手一般都能解决了
    推荐使用UTF-8编码,一劳永逸

  36. 36
    Gavin 说:

    请帮我解决一下下列乱码问题,谢谢!

    +T1VOrmYO-,+T1Vc8A-

  37. 37
    xpoint 说:

    加上这一行后这一行就报错了,奇怪,大家好像都应用正常

    Parse error: parse error, unexpected ‘=’ in /home/blogisne/public_html/deeptree/wp/wp-includes/wp-db.php on line 44

  38. 38
    Zola 说:

    to Xpoint:你的MYSQL数据库不是4.1以上就不要添加那行代码,或者不然会报错。我也试过。详细解决方案请参考我写的日志
    to 桑椹:请删除我发过来的有乱码的引用通知吧。你的BLOG还有有编码问题,查看你的网页源代码,里面的中文是乱码,很多人的WP的日志源代码中的中文是乱码,而我的BLOG中却没有乱码,你参考一下我的解决方法试试吧。
    对了,我得谢谢你,你的日志给了我很大的帮助。:)

  39. 39
    xpoint 说:

    指出一下,文中关键这段代码中用了似乎使用了中文的标点,请桑葚做下更改,免得大家直接copy出错,谢谢你。

    $this->query(”SET NAMES ‘utf8′”);

  40. 40
    94smart 说:

    终于在你这里找到解决办法了,这个方法适用于DreamHost的数据库。

  41. 41
    iSdq 说:

    事情是这样的:

    我的blog系统是MT,是老外的产品,默认编码是 UTF8。MT的数据库使用的是MySQ,虽然也是老外的产品,但是安装时候默认的数据库编码一般是latin1。其实这就已经出现了问题,比如你用 PHP查询的时候可能没有问题,但是用PHPMyadmin和其他数据库管理软件(比如MySQL CC)看到的汉字基本上是乱码。有时候连备份的.sql文件也是乱码。

    恰好在这个新年开始的时候,我选择了升级MySQL和数据库备份的工作。我利用MySQL官方体提供的MySQL Administrator dump 1.4备份MT数据库,由于不熟悉这个工具(才出来吧,而且是英文的,就没有深究),备份的时候他的默认编码是UTF8,自然我备份下来的.sql文件是乱码。然后在升级完成后,我导入备份文件时就出现了乱码,更槽糕的是当时完全没有察觉,MT全部重建了,此时blog系统已经全部是乱码了。:(

    http://isdq.com/image/process.jpg

    现在的状况是:

    1、我手头上只有.sql文件,且是乱码。

    2、MT全部重建了,没有静态文件的存档。

    我完全被这种状况给搞晕了,不知道大家有什么办法来解决?完美的转换备份文件的编码?恢复误删除的文件?各位有什么方法请告知于我,在下万分感谢。

    ps:王建硕的blog(MT系统)也出现了问题,一个月没有开工了。我的虽然可以工作,但是以前的post都形同火星文字,想来这样也是不行的。

    我们的高科技系统其实是多么的脆弱。还有那些个可恶的不同标准的默认编码。

  42. 42
    桑葚 说:

    iSdq,我也碰到过类似的问题,尝试了很多也无解,寄希望于别的访问者吧
    xpoint,谢谢提醒,现在是不是可以了

  43. 43
    sh18 说:

    to : iSdq
    不知道这片文章 http://www.sh18.org/blog/?p=70 是否可以给你启发

  44. 44
    Thinking in sh18 » wordpress数据库编码转换[解决乱码] 说:

    [...] http://yanfeng.org/blog/585/ [...]

  45. 45
    Atapās » Free WordPress Hosting Convergence 说:

    [...] MySQL 4.1x 中文乱码问题 [...]

  46. 46
    SKII » Blog Archive » WordPress数据库恢复手记 说:

    [...] 所有数据库操作完成, 登陆网站查看,一下子傻了,除了我在侧边栏里写的自我简介那几个字是正常汉字,其它全以”?”显示。难道字符设置不对?不可能啊数据库是原来的,当然字符设置也是原来的”utf-8″。上网找答案,原来以前MySQL版本为4.0的转到4.1或者更高版本时,会出现乱码。上服务器的说明中查看,原来老的服务器MySQL版本为4.0,而新的服务器版本为5.0,晕哦,可真先进。继续google,在”桑林志“的”MySQL 4.1x 中文乱码问题“中找到了解决方案。 [...]

  47. 47
    dog 说:

    不同版本的数据库导入我搞不定啊。。实在头疼!从高到低察看了n中办法了,不知道哪里出问题就是不行。

  48. 48
    SK-II : Website Technical Specialist » Blog Archive » MySQL 4.1x 中文乱码问题 说:

    [...] [...]

  49. 49
    双生 | iSdq.com 说:

    WordPress和MovableType的MySQL乱码问题解决方法…

    WordPress和MovableType是主流的Blog系统,而他们都用的是MySQL数据库,那么在MySQL4.1下,中文的WP和MT就会产生种种的乱码问题。 如前MySQL4.1乱码问题分析的,一个程序( PHP,CGI 等)与MySQL建立连接…

  50. 50
    劳改犯的印表机 » Blog Archive » MySQL 4.1x 中文乱码问题 说:

    [...] <a href=”http://yanfeng.org/blog/585/”>http://yanfeng.org/blog/585/</a> [...]

  51. 51
    费乐沃 说:

    谢谢,解决了我的问题。
    我用的虽然是nucleus,但在mysql_connect后面加了类似的mysql_query就行了。
    /**
    * Connects to mysql server
    */
    function sql_connect() {
    global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE;

    $connection = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError(’Could not connect to MySQL database.’,'Connect Error’);
    mysql_select_db($MYSQL_DATABASE) or startUpError(’Could not select database: ‘. mysql_error().”, ‘Connect Error’);
    $qry = mysql_query(”SET NAMES ‘utf8′”) or startUpError(’SET NAMES Error.’); //就是这句
    return $connection;
    }

  52. 52
    Tao道-博客黑洞 » WordPress数据库恢复编码转换[解决乱码问题] 说:

    [...] http://yanfeng.org/blog/585/ [...]

  53. 53
    神话中人 说:

    我以前在自己的电脑上调试WORDPRESS的时候一点问题都没有,可是有一次我的电脑坏了就把系统重新安装,然后安装完之后,用WORDPRESS的时屏幕上什么东西都没有显示,
    我的是win2000ads en+apache2.0.5+php4.2.3+mysql4.0.1

  54. 54
    brian.yin 说:

    你们也写得太高深了,对于mysql max版本,如下就搞定了
    在max 版本的mysql中由于安装过程不需要configure所以无法在安装过程配置默认字符集。
    唯一的办法就是在数据源目录下,即data目录下建立一个my.cnf文件,文件内容如下:
    [mysqld]
    default-character-set=gb2312
    然后重新启动mysql.

  55. 55
    冰古Blog » 说:

    [...] 昨天下了wamp5,准备再好好学学PHP和玩一下wordpress。 没想到一来就弄个麻烦的~从空间上备份的数据,导入到本地数据库后,竟然是一堆乱码(形如:????),自己是搞鼓了一整天(试了几乎所以相关的utf8编码都是不行)也是没搞定。 自己搞不定就找人问吧。来到海豚在google论坛上建的论坛上发言,下午海豚告诉我在苛世录上可找到解决办法,跟去→桑林志、Windix’s Weblog→阿修的部落格 原因是: 从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章”Character Set Support“后终于找到了解决方法并测试通过。 [...]

  56. 56
    冰古Blog » wordpress导入后出现乱码之解决 说:

    [...] 昨天下了wamp5,准备再好好学学PHP和玩一下wordpress。 没想到一来就弄个麻烦的~从空间上备份的数据,导入到本地数据库后,竟然是一堆乱码(形如:????),自己是搞鼓了一整天(试了几乎所以相关的utf8编码都是不行)也是没搞定。 自己搞不定就找人问吧。来到海豚在google论坛上建的论坛上发言,下午海豚告诉我在苛世录上可找到解决办法,跟去→桑林志、Windix’s Weblog→阿修的部落格 原因是: 从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章”Character Set Support“后终于找到了解决方法并测试通过。 [...]

  57. 57
    Fenbox » Wordpress数据恢复 说:

    [...] 2.更改WordPress程序中wp-includes/wp-db.php的文件:我是选择了在56行处,而不是44行处(桑林志的做法)加入了如下语句: $this->query("SET NAMES ‘utf8′"); [...]

  58. 58
    Blog of Redgict » MySQL 4.1x 中文乱码问题 说:

    [...] http://yanfeng.org/blog/585 [...]

  59. 59
    novice 说:

    I seldom work on Chinese Character set. But the method on this article helps me a lot….. It works!………….Thanks!!!!!!!!!!!!!!!!!1

  60. 60
    harddisk’s yard » Blog Archive » 记录一下安装wordpress,和碰到的几个小问题 说:

    [...] 参考文章:MySQL 4.1x 中文乱码问题 [...]

  61. 61
    GoTop’s Blog » Blog Archive » Blog换空间了~~ 说:

    [...] 导入Blog的数据的时候不幸的遇到了MySQL乱码问题,好在前人已经积累了丰富的经验。 [...]

  62. 62
    如何进行wordpress的数据库搬迁 at Runaway 说:

    [...] 对于中文可能出现乱码的情况,桑葚在这里有一个解决方法。对于中文显示乱码的解决方法,基本上就是把能在phpMyAdmin里定义collation的地方全部定义为utf8_general_ci吧。 Technorati Tags: MySQL, wordpress, 乱码, 搬迁, 数据库 [ Google | AdSense for content ] [...]

  63. 63
    Ma 说:

    我在BLUEHOST上安装wordpress.org.cn导入数据库时也碰到了同样的问题。

  64. 64
    seele 说:

    我不知道我的怎么回事?
    以前写的那些文章,现在部分文字是正常的,部分是乱码,而现在我试发了一篇,又是正常的,不明白,很晕!
    按你的方法试,全部是乱码了…
    头疼!~~
    能否帮忙?
    谢谢!

  65. 65
    桑葚 说:

    可能你的主机商偷偷升级 mysql 了

  66. 66
    11 说:

    总的说是不错,我这么做完就都好了。不过觉得很奇怪,我用的是php5+mysql5,而且我的mysql是整个服务器都设为utf8的了。怎么还会出这问题。

  67. 67
    张樑 说:

    请问 樑 能不能 在mysql中存放呀

  68. 68
    la série Originale » 搬移告吹 说:

    [...] CCUBE說我在設定好了的伺服器中太久了,對著一個原始的伺服器是會束手無策。又或許是「一Host不能藏二Blog」吧,希望在那裡裝相簿會成功。 感謝以下網站提供大量資料讓我嘗試搬Wordpress,我對Wordpress的認識加深了。 桑林志 - MySQL 4.1x 中文亂碼問題 Wordpress Codex - Using Permalinks PHP Function Lists [...]

  69. 69
    闲汉’s Blog » WordPress数据库恢复编码转换[解决乱码问题] 说:

    [...] http://yanfeng.org/blog/585/ [...]

  70. 70
    蒲公英 说:

    [...]    这个问题竟然是由于数据库没有向下兼容引起的,原因是大多数主机还是装4.0.x版本一下的MySql,而我自己机子上的是4.3.4版本的,看到这篇文章才知道解决方法。 [...]

  71. 71
    9th Planes » Blog Archive » WordPress Hosting Convergence 说:

    [...] MySQL 4.1x 中文乱码问题 [...]

  72. 72
    Sky Garden Blog » wordpress如何转移数据库 说:

    [...] 所 有数据库操作完成, 登陆网站查看,一下子傻了,除了我在侧边栏里写的自我简介那几个字是正常汉字,其它全以”?”显示。难道字符设置不对?不可能啊数据库是原来的,当然字符 设置也是原来的”utf-8″。上网找答案,原来以前MySQL版本为4.0的转到4.1或者更高版本时,会出现乱码。上服务器的说明中查看,原来老的服 务器MySQL版本为4.0,而新的服务器版本为5.0,晕哦,可真先进。继续google,在”桑林志“的”MySQL 4.1x 中文乱码问题“中找到了解决方案。 [...]

  73. 73
    夜工场. » wordpress恢复数据库后乱码问题的解决 说:

    [...] http://yanfeng.org/blog/585/ [...]

  74. 74
    夜工场 » wordpress恢复数据库后乱码问题的解决 说:

    [...] http://yanfeng.org/blog/585/ [...]

  75. 75
    what? 说:

    test

  76. 76
    wpfans.org 说:

    [...] http://yanfeng.org/blog/585/ [...]

  77. 77
    beestide.com 说:

    @mysql_query(”SET NAMES ‘utf8′”);
    只要页面用u8,连接数据库时用这句可以解决很多问题,zen-cart,joomla,wp都很好使,hehe

    开发者社区

  78. 78
    purple 说:

    不知道你这种方法是否适合4.1升级到5.0的?多谢

  79. 79
    桑葚 说:

    我不清楚 4.1 到 5.0 是否还有这问题。

  80. 80
    逐鹿的日子 » WordPress数据库恢复编码转换[解决乱码问题] 说:

    [...] http://yanfeng.org/blog/585/ [...]

  81. 81
    空间转移至dreamhost THINK-ING 说:

    [...] 虽然服务器在国外,但访问速度,上传速度都挺快的,用dreamhost提供的一键安装功能,一两分钟就把wordpress 2.04及服务器安装好了,然后把之前备份的数据库导入新的服务器,用ftp上传自己的模版,最后用putty登陆到服务器,以超过300kbps的速度把东西从原来的服务器直接下载到新的服务器上面,就基本完成了安装,当中只有一点要注意的,就是数据库的正确导入和乱码的问题,其它都很方便。 电影:《龙虎门》1元更多特价DVD畅销图书65折封顶: 当当 卓越兄弟(余华) 5.5折, 越畅销越打折电影:疯狂的石头(2006.7出品)绝对精彩的国产搞笑片!人体使用手册一场养生方式的大革命 Leave a message Name [...]

  82. 82
    豆干瘦肉臭又臭 » Blog Archive » 想动动自己的blog 说:

    [...] 关于数据库乱码解决办法参见:http://yanfeng.org/blog/585/ [...]

  83. 83
    Sumnnyのportal » mysql的乱码问题 说:

    [...] wp的解决方案很完善了。不过架的Nucleus却一直有乱码问题。 [...]

  84. 84
    xmpp 说:

    MySQL 4.1, 5.0, 5.1 都需要设置 charset, 默认好象是 Latin-1 吧。

  85. 85
    steve 说:

    我有同样乱码问题. 请高手指点在那页更改成 “UTF-8″

  86. 86
    shen 说:

    I encountered such problem while migrating my wordpress’s database from mysql 4.1 to 5.0, and this patch works. However I found it rather strange; under v4.1 I made a sql query in an unicode terminal, and the the chinese content displayed properly, but it is not the case under v5.0. Anyone know the reason?

  87. 87
    shen 说:

    I got it, one have to issue the command set names utf8 once connected to the database, a sort of protocol initialization, the result of SQL query will then be in the character set specified.

  88. 88
    LoveXu : wordpress恢复数据库后乱码问题的解决 说:

    [...] http://yanfeng.org/blog/585/ [...]

  89. 89
    梦之幻 说:

    有没有知道,如果MP3中的汉字全变成了乱码该怎么办啊?~~~~~热心的大学可以给人回帖吗~~~~~~在这里先谢谢回帖的朋友了~~~~

  90. 90
    William Liu 说:

    set names ‘utf8′ 只能解决 MySQL 中文输出乱码问题, 不能解决 中文输入MYSQL 中文乱码问题.

    一下三句话, 可以同时解决 输入输出乱码问题.
    1)前提: 把存放中文的字段 collation: utf8_general_ci
    2)mysql_select_db 之后, 执行以下三句话:
    3)mysql_query(”SET character_set_client=’utf8′”);
    mysql_query(”SET character_set_results=’utf8′”);
    mysql_query(”SET collation_connection=’utf8_general_ci’”);

  91. 91
    艰苦奋斗,成功转移BLOG! at the Flower Bless 说:

    [...] http://yanfeng.org/blog/585/ [...]

  92. 92
    蒋记 » Blog Archive » ExpressionEngine安装笔记 说:

    [...] 以上参考WordPress的Mysql 4.1中文乱码问题, 同样可以解决ExpressionEngine. 然后就可以按照Documentation中的步骤安装, 我的安装过程很顺利, 这也体现了EE的成熟. [...]

  93. 93
    老K讲台 » Blog Archive » 跌跌撞撞升级中 说:

    [...] 来自于泊客myheimu以及桑椹 照做后 问题果然解决了 不过新的问题又出现了 [...]

  94. 94
    OtherSide » Blog Archive » 换空间,暂停更新 说:

    [...] 后台数据转移过程可就不是那么顺利了。经过多次导出导入、清空、删除等操作,大致问题整理如下: 1.整体导出导入时,数据库需要升级,一升级服务器就跟着出错。服务商说原因是“主机不支持.htaccess文件。程序自动生成了.htacess文件,数据库版本不一样。”我听得糊里糊涂,完全没有解决办法。 2.一条条导入的话,数据库会出现乱码。这个应该是MySQL 4.0.25转移到MySQL 4.1X出现的。暂时能找到的解决办法是http://yanfeng.org/blog/585/。 [...]

  95. 95
    卖克老猪的部落格 » 文章归档 » WordPress数据库编码转换 说:

    [...] 经过查看许多网志(Andy、佐仔、土路托、桑椹等)后终于知道,这是由于 wordpress 自身默认使用的 Latin1 在作怪。要想使得数据库内中文内容正常显示,我们就得把它转换成 utf8 编码。这个过程很简单,只需要下面简单的几步: [...]

  96. 96
    Freeman 说:

    终于导入成功了,不过每次升级WP都要添加$this->query(”SET NAMES ‘utf8′”);
    ,有点麻烦。谢谢桑葚

  97. 97
    晃晃悠悠 » wordpress恢复后出现乱码的解决办法 说:

    [...] 昨天下了wamp5,准备再好好学学PHP和玩一下wordpress。没想到一来就弄个麻烦的~从空间上备份的数据,导入到本地数据库后,竟然是一堆乱码(形如:????),自己是搞鼓了一整天(试了几乎所以相关的utf8编码都是不行)也是没搞定。自己搞不定就找人问吧。来到海豚在google论坛上建的论坛上发言,下午海豚告诉我在苛世录上可找到解决办法,跟去→桑林志、Windix’s Weblog→阿修的部落格原因是: [...]

  98. 98
    I-Ta Tsai's Blog » 我與 wordpress 说:

    [...] 打算移除, 直接去下載 tarball 回來裝在自己的家目錄, 順便也把編碼, 還有 SET NAMES utf8 的 patch 解決, 然後又去找了個 theme 回來用, 目前為止看起來是還好, 雖然我覺得動態到 db 去抓資料出來顯示, 好像有點慢的感覺, (不過也有可能是我的電腦不夠快啦~ ) 總之先這麼用好了, 最近在期中考要寫什麼好像也不太可能, 沒關係啦~ 暑假再來說好了, 反正沒安排什麼活動, 應該是蠻閒的才對… ^^a [...]

  99. 99
    Gawain 说:

    现在也是有这个问题了,好在已经解决了。
    安装服务器的时候定了charset=utf8,然而站点是用gbk写的。导入的时候就出了问题。

    mysql_query(”set names gbk”);

    有一个很脏的做法是改my.cnf
    init-connect=’SET NAMES gbk’
    这样也可以,不过就是脏了点!!

    参照:
    http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html

  100. 100
    自然的簫聲 说:

    實戰:WordPress数据库恢复及解决乱码问题…

    前因:
    不明原因,昨天留言顯示區域出現問題,害我花了2個小時重新恢復;但是發現仍舊存在下面問題:
    相關截圖:

    似乎是垃圾留言引起的問題?
    0、我全新安裝后重新倒入備份數據,….

  101. 101
    華萊士 说:

    幸好你提出了在 wp-db.php 加入

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

    否則我怎樣想也想不到竟是 wordpress 的問題! 謝謝你!

  102. 102
    來医 说:

    最好還是在 my.cnf 入手, 不用逐個php程式改code。在 my.cnf 中的 [client] 和 [mysqld] 章節中都加上一行 default-character-set=utf8
    就可以了:

    [client]
    default-character-set=utf8

    [mysqld]
    default-character-set=utf8

  103. 103
    李杰的博客 | jaylee’s blog : 为Wordpress搭建一个镜像 说:

    [...] MySQL 4.1x 中文乱码问题 [...]

  104. 104
    百优科技 说:

    百优科技
    国际域名45/年.国内域名37/年.1G空间350/年.
    http://www.100u.net

  105. 105
    Corr’s flyin’ » Blog Archive » trackback乱码 说:

    [...] Corr @ 15:35 in Wordpress 上次有篇日志trackback到了桑葚兄那边,可是他那边出来的页面,除了标题,其他都是乱码。不知道他在后台看到的会不会也是乱码一片。今天在他那边看到这一篇文章《MySQL 4.1x 中文乱码问题》。我试着按照里面的办法改了一下wp-db.php文件,可是,好象不起作用,而且后台管理页面也出错的情况。没办法,再“骚扰”一次桑葚兄吧,不知道这次正常没有,但愿显示正确! [...]

  106. 106
    五音不全 - WordPress资源 说:

    [...] MySQL 4.1x 中文乱码问题 [...]

  107. 107
    wangming 说:

    b?茐瀂谡纥= A嫁鱷=遺|H.W.NL遫蠜蝧wy玩鹓垮7滮歼刍鹹砍鼷浳ow捷骥g竭L灈靟e??s? 藗馏 海Pa峳d ?帕韮??咚鯗空鑷y?J廈???y?R•咱>鎏€{?4 ?炙遪¬x % c姤€/塹k?5?^
    软抃?巺 睙H:燆 忖E淐G 鉻鼿炶F?悵 0扱^駧諴瞣能獀?¬F|\o?

  108. 108
    My blog » Blog Archive » 轉移資料進度達95% 说:

    [...] SMF的那一篇文章 google找到的資料 主機商的回信 It appears that your mysql backup file is in UTF-8 encoding, it is likely that [...]

  109. 109
    WordPress数据库恢复手记 at E-space 说:

    [...] 所有数据库操作完成, 登陆网站查看,一下子傻了,除了我在侧边栏里写的自我简介那几个字是正常汉字,其它全以”?”显示。难道字符设置不对?不可能啊数据库是原来的,当然字符设置也是原来的”utf-8″。上网找答案,原来以前MySQL版本为4.0的转到4.1或者更高版本时,会出现乱码。上服务器的说明中查看,原来老的服务器MySQL版本为4.0,而新的服务器版本为5.0,晕哦,可真先进。继续google,在”桑林志“的”MySQL 4.1x 中文乱码问题“中找到了解决方案。 [...]

  110. 110
    使用"WordPress Database Backup"备份及恢复数据库方法 at 博弈 Just a Game 说:

    [...] 恢复过程通过HostMonster控制台自带的phpMyAdmin进行。为避免出现乱码,操作过程,参考了时光漫步,桑林志,夜工厂的文档,其中,推荐“时光漫步”的文档,图文并茂,简单易懂。 [...]

  111. 111
    Common Sense » Blog Archive » 终于解决了wordpress备份中的乱码问题 说:

    [...] 由于编码不同,备份好的数据重新导入后,乱码是必不可少的。参考了若干的文章,如桑志林等等,依旧不成功。最后的事实证明,教程都没有问题。不过其中有一个很重要的环节需要注意: [...]

  112. 112
    趣读吧 » WordPress数据库恢复手记 说:

    [...] 所有数据库操作完成, 登陆网站查看,一下子傻了,除了我在侧边栏里写的自我简介那几个字是正常汉字,其它全以”?”显示。难道字符设置不对?不可能啊数据库是原来的,当然字符设置也是原来的”utf-8″。上网找答案,原来以前MySQL版本为4.0的转到4.1或者更高版本时,会出现乱码。上服务器的说明中查看,原来老的服务器MySQL版本为4.0,而新的服务器版本为5.0,晕哦,可真先进。继续google,在”桑林志“的”MySQL 4.1x 中文乱码问题“中找到了解决方案。 [...]

  113. 113
    小雨 说:

    请问:不是这个版本的数据库可以用这样的方法解决吗?

  114. 114
    小雨 说:

    请问:不是这个版本的数据库可以用这样的方法解决吗?

  115. 115
    eve 说:

    Hi,
    很高兴看到你的blog
    我在备份的时候遇到同样问题,用您建议的方法试了很多次也没有成功
    后来看系统的字符集和排序方式的设定,发现
    | collation_server | latin1_swedish_ci |
    | character_set_server | latin1 |
    是不是这两个值不改成utf8的,字体就没法显示正确?我无法更改web hosting server的这两个值,请问有什么解决方案嘛?
    多谢

  116. 116
    ddd 说:

    好有个问题就是从网页中提交中文到mysql数据库中
    在页面可以正常显示中文,可是数据库中是乱码,如何解决?

  117. 117
    Kind Blue’s Space » WP中文乱码之旅 说:

    [...] 在此,要特别感谢桑林志的《MySQL 4.1x 中文乱码问题》,让我彻底走出了乱码阴影 [...]

  118. 118
    野鸭 说:

    这个帖子真热。
    今天我也用 SET NAMES ‘utf8′ 解决了问题。
    嘿嘿。

  119. 119
    totostar 说:

    你好,我的乱码问题更严重.想请你分析下看怎么解决.我用phpmyadmin管理mysql数据库时,将一个字段的整理属性由原来的latin1_swedish_ci改成gb2312导致该字段乱码,然后改回原来的latin1_swedish_ci也不管用了,全变成?了.而且改回来后还是乱码.能解决的话,麻烦联系下我.
    qq:30104993

  120. 120
    指甲彩繪 说:

    感謝哦,原來是這樣。

  121. 121
    kenjor 说:

    非常感谢

  122. 122
    ZRong’s Blog » MySQL4.1乱码问题与WordPress 说:

    [...] MySQL 4.1x 中文乱码问题 [...]

  123. 123
    拼凑Jeff » » 考试到! 说:

    [...] 站点的界面暂时稍稍做了一点小修改,不过配色还大概需要再改善(没办法,我不是专业的designer,所以配色都是trial and error的)。Blog也顺便直接跳过Wordpress 2.3.1直接upgrade到2.3.2。至于之前无聊人遇到的问题这里倒是没有出现,我想我需要简单的解释一下。据我所知,自从MySQL更新到大概4.x的时候,它就加强了对Unicode的支援(包括可以为内容排序),但是之前对unicode的支援不是很完善,所以MySQL更新到4.x的时候会出现encoding上的混淆。为此当时候我花了好一阵子的时间把这个blog的所有data全部转去正确的unicode再重新导进database内。可是当时Wordpress和MySQL的沟通不太好(因为不是每个MySQL Server都会by default output in unicode的),每次upgrade wordpress的时候我都要修改一点点wordpress的coding。后来跳到2.3.0我总算不需要每次更新就去修改那个file,所以这次upgrade我的中文字还是很完美的出现在大家面前。 [...]

  124. 124
    LosAngeles 说:

    Assuming either the Left Wing or the Right Wing gained control of the country, it would probably fly around in circles.

  125. 125
    Houston 说:

    Listen. Do not have an opinion while you listen because frankly, your opinion doesn?t hold much water outside of Your Universe. Just listen. Listen until their brain has been twisted like a dripping towel and what they have to say is all over the floor.

敬请留言

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>