MySQL latin1 转换 utf8
RSS

MySQL latin1 转换 utf8

类别: 杂七杂八   时间: 2008-09-04   标签:

由于要帮忙维护某个私人社团网站,学弟明明告诉我是UTF-8编码,但在使用PHPMyAdmin浏览数据表内容时,却是一片乱码。这个问题困扰我很久,终于因为下面这篇文章搞清楚了:原来学弟架的网站MySQL预设编码是latin1。

以下文章引用自:http://a-wei.net/archives/4

相信MySQL的编码对很多人来说…一直是个相当令人头痛的问题…今天所要做的介绍是如何把数据库的数据,由latin1转成utf8..

一般.. MySQL装起来后(用rpm安装) ,系统的预设编码是latin1.

而很多人在安装一些网页的系统时,如wordpress、LifeType、phpBB …等等,都会选择utf8 。

这时…系统一样可以正常运作…只是当用phpmyadmin进入管理数据库时,就会发现..怎么中文字的部分都变成了歪七扭八..

或者一些鬼画符的文字。如:凡 事先從工作講起

此现象就是utf8的文字以latin1形式储存,phpmyadmin以utf8的数据读取方式读取…读出来的数据就是这种鬼画符…><。

若要解决phpmyadmin读出的鬼画符…有两个方法:

1.进入phpmyadmin内一个名为libraries的子目录..编辑select_lang.lib.php.找到$mysql_charset_map这一段下方..

‘utf-8′ => ‘utf8′,
把它改成

‘utf-8′ => ‘latin1′,

然后存档…这时候就可以发现原先的鬼画符…这时候又都正常了.

2.把数据库的编码转成utf8 …

步骤:

a.把数据库dump出来

mysqldump -u xxx -p database > database.sql –default-character-set=latin1

这时候dump出来的database.sql是latin1的档案格式,然而是utf8的文字数据,因此这时若用vi开档看它…

还是会发现中文字是鬼画符…这时不要被眼前的假象所骗…以为自己做错..几接着做下一步骤。

b.把dump出来的database.sql下载回去..用emEditor(网路上可免费下载,是个支援utf-8的编辑器)把database.sql打开,

它可以正常识别utf8的文字..用取代的功能,把latin1都取代成utf8 ,之后直接另存新档..这时把档案类型设定储存成UTF-8。

c.再把database-utf8.sql上传到server ..这时我们用vi开启它..就可以看见是正常的中文字..这就表示档案没问题啰。

d.把档案汇入数据库

mysql database < database-utf8.sql -u xxx -p –default-character-set=utf8
如果数据量不是很大…那么很快就可以完成这个步骤..这时候若没有错误讯息出现..那么恭喜你..

你已经完成了数据库转换的工作了。如果有错误讯息出现..主要有两个情形..

1.文件档内的中文字,用vi看是乱码..文件档的格式不是utf-8。

2.汇入的时候漏掉指定采用utf8的数据编码汇入。

以上的作业是在数据库系统都是处于latin1的环境底下,也就是没有在my.cnf指定default-character-set=utf8。

vi如果猜不出来就会用预设编码观看,如果你知道是用什么编码了话,改变检视编码就好. set encoding=utf-8

Bluehost.com Web Hosting $6.95

本文Dao Blog - 道博客版权所有,可转载,但需注明出处:http://www.daoblog.com/mysql-latin1-utf8.html

下篇文章: bbPress
上篇文章: Disable WordPress Revisions and Autosave
"MySQL latin1 转换 utf8" was posted on Thursday, September 4th, 2008 at 3:46 pm.

发表评论

 
最新文章
随机文章