MYSQL 4.1X的乱码完全攻略

MYSQL 4.1X出来也有点时间了...eee.....这次决心从3.23转移到4.1.10a.......也遇到了很多人碰到的编码问题.....今天2天研究...终于...完美的解决掉了.....先提供思路...以及TT,PLOG的具体解决方法....enen..

大家升级到4.1x主要会碰到的问题是什么呢?

一是数据导入。在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′;

好了..知道什么情况...那就来说说方法....我来用TT举例子......TT是一个典型的UTF-8编码的blog程序.......首先打开phpmyadmin......语言我用中文utf-8.....连接校对选择utf8_general_ci......建立一个新的数据库...默认整理是latin_swedish_1....eee..天知道mysql怎么默认这样....自己选成utf8_general_ci...好了...现在3个层次都是utf-8了...把以前的数据导进来....你发现phpmyadmin看到的都是正确的...可是程序还是不能显示正确....于是我们要修改连接层......打开tt根目录inc_function.php这个文件....

if (!$this->con) $this->db_error("DB数据库链接错误"); if (!@mysql_select_db($this->db, $this->con)) $this->db_error("DB数据库设定错误");

修改成

if (!$this->con) $this->db_error("DB数据库链接错误"); if (!@mysql_select_db($this->db, $this->con)) $this->db_error("DB数据库设定错误"); $this->con = mysql_query('SET NAMES \'utf8\'',$this->con);

打开前台..发现全部编码都正常了.....enen....如此..全部问题解决.....

plog的解决方法(摘录自Pesty's Article)为在SelectDB() 这个函数中修改:

function SelectDB($dbName) { $this->databaseName = $dbName; if ($this->_connectionID) { + $dbEncoding = + $this->_getDbDefaultEncoding($dbName); + if ($dbEncoding) { + mysql_query("SET NAMES $dbEncoding", + $this->_connectionID); + } return @mysql_select_db($dbName, $this->_connectionID); } else return false;

评论(3)

事情是这样的:

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

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

process

现在的状况是:

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

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

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

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

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

求助:

事情是这样的:

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

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

process

现在的状况是:

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

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

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

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

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

首先,想办法看到正常的SQL文件,用editplus转换,肯定能回来的,只要你真的是原始文件!
然后,你MT假如用的是MYSQL,请建立库什么的都用general_utf8,这样才能在phpmyadmin中看到正常的
ps:我本人喜欢MT配合文本数据库.backup超级方便.

发表评论

最新日记

  • 身体不适 回归健身房

    手断了也快3个月了,国庆长假期间去了一次健身房,惊喜的发现终于能卧推了,当然重量下去很多,只能推两片菜园小饼了。这意味着我能恢复训练了,用到手腕的动作都可以恢复了。不过发现一个很悲剧的情况,最近腰不太好,可能是每天折叠车拿上拿下,我的腰好像前所未有的不舒服,涂了黄道益,没见好转,真让人沮丧,需要慢慢的恢复训练,并且补充营养品了。...

  • 伤筋动骨确实需要100天手终于恢复过来了

    骨折到现在一直很失落,因为骨折让我感觉到自己不那么健康,因为骨折让自己失去篮球和其他运动的能力,失去去健身房锻炼的权利。今天,距离716骨折已经2个多月了,做了下俯卧撑,不痛了,太好了我很激动,我知道手腕快好了,恩。我要更注意自己的保护了。 西藏北路的房子有优点也有缺点,优点是感觉房子蛮大的,没有厅所以房间很大,个人空间大,离开8号线站头步行3分钟,交通便捷,去哪里都很方便,自行车到四川路也就8分钟,离开公司那就更近了,舒服。缺点是,虽然马路边风景好了,但是很吵闹,尤其低音从骨骼传递而已,让人感觉很难过,睡觉不好,不过现在已经适应了,无法停车汽车或者电瓶车都没有位置停,停楼下肯定要被偷,不过我发现八号线门口好像有停车场,可以免费停业不错。ADSL还没有转移过来,有线电视倒是好了。最后希望拆迁顺利点。...

  • 车车终于买好了,明锐1.8t

    又是一段时间没写blog,可能是装上MT之后更新频率最慢的一段时间吧。我也不知道为什么,但是总是不能有精神的写。可能自己手腕还没完全恢复,很沮丧吧。 最近的大事就是车子买好了,上海大众斯柯达新明锐2010款1.8t,灰色的,7速dsg变速箱,逸俊版,j加装了ESP,安全很重要。真是相当相当的喜欢,完美的地盘完美的动力配置,外加新款的造型,让人很满意,安全方面假装ESP。比较可惜就是方向盘是全塑料的,没有选择价值3500的选装包5,包含更多的两个喇叭,大点阵的仪表显示屏,一个触摸屏CD机,真皮带蓝牙方向盘,有点点后悔。但是有了更好的选择,RS的真皮方向盘,带拨片式换挡片,配合DSG时王道般的选择。CD,DVD,GPS这种纯娱乐电子的东西是完全不需要,原厂的贵的不行,哪怕国产的都是很贵,一个本本才多少钱,花个几千买电子产品是很不划算的行为,不过也有选择,比如西门子的VDO和明锐的CAN盒完美匹配。还需要一套金属的踏脚板,便宜的很,一套固德的8件套金属件,包含迎宾踏板等。性能方面改装要很多钱,但是可以设想下,仿BBS的轮毂一套,17寸的米其林轮胎一套,b12避震一套完全用不着更好的产品,淘一套拆车的尚酷或者随便什么PQ35系大尺寸刹车,完美车车立即呈现。恩。开心点吧...

  • 一个月拉 身体在快速的康复中

    一下就一个多月没写blog,没有记录生活。不为别的,只是老夫的手骨折了,三角骨撕脱性骨折。这一个月经历了很多事情,尤其一个月前七月十七日。老夫领了结婚证,成为已婚人士。当然是带着手腕的剧痛领的,领完就去瑞金医院绑了石膏。领证前一天想娱乐娱乐,冒着大雨去打篮球,只怪闸北IC的地板太光滑,动作一做出来就摔了,很惨,三角骨就这样骨折了。还好是小伤,大前天拆掉了石膏,恢复中。每天一副云南白药,带上一个护腕,这两天恢复下来,感觉明显好转。从刚拆的有轻微的牵扯静脉的感觉,到现在基本很OK,云南白药对我帮助很大。希望身体快点恢复。这1个多月没有去健身房,有点脂肪堆积了,要开始强化的有氧了。...

  • 几乎一个月没有写blog了 已经完全夏天了 不过没感觉到热....

    上海已经完全夏天了,不过最近雨季,没有前些日子那么闷热。每天家,公司,健身房三点一些,好在都有空调,所以没有感觉到不舒服。但是肚子好像不争气,肠胃不是很好,虽然吃东西已经很注意了。 夏天到来最大的一个好处就是电瓶车的行驶里程大了很多,明显比冬天的时候行程更长,持久高电压带来更高的速度,铅酸电池真是难伺候。不过话说GIANT上的三洋电池用了三年还是如此坚挺,感觉很欣慰。 本周结束,为期一个月的停止供应的补剂,也要准备恢复,迫不及待的想尝试肌肉科技的那绝对美味的蛋白粉了。 然后,7月17要经历一个大事件了。...

关闭