mysql utf8 latin1_将Mysql字符集从latin1转换到utf8
上次更换服务器系统从rh7.3到ubuntu,将Mysql3.23野蛮升级到5.1,因为只要部分数据库,不想去打开那个大SQL文件去编辑。但将想要的数据文件copy到新目录下,发现竟然也可以用,也就不去管它了。
但在phpMyadmin里竟然都是乱码了,这可不行,不少数据因为我懒得开发后台,都是用phpMyAdmin来管理数据的。
上网找了下,才知道有个字符集的什么东东,按照网上常讲的三步法,先latin1导出,再用iconv转换,再用utf8导入,我怎么也不行。到底是因为ubuntu的原因,还是怎么回事,还没搞明。不知道哪位前辈有经验,给点提示。
最后采取了一个办法,先将一个小数据库先改升级成utf8的:
mysqldump --default-character-set=latin1 woyi|sed 's/latin1/utf8/'>woyi.sql
再将该sql内容copy到phpMyAdmin的SQL执行窗口中执行。谢天谢地,总算在phpMyAdmin中看到不乱码了。
朋友的网站要加一个论坛,可论坛的PHP代码都用GBK或UTF8字符集,原来一直搞不定的数据库的LATIN1字符集升级到UTF8问题,今天只好再试试。不想今天手气竞然不错,这个问题还真解决了。
1.先从sm18900库中将某表导出:
mysqldump --default-character-set=latin1 sm18900 product_kind>product_kind.0
2.使用UltraEdit32修改product_kind.0文件
在文件开头的注释之后,SQL语句之前,加入如下两句
我将这两句放在文件的开头,竞然不行?
请看导出的sql文件的第10行,这是一句视版本的执行命令:
/*!40101 SET NAMES latin1 */;
set names utf8;
use pk0598;
将defaultcharset=latin1改成utf8的
用菜单里的“转换”,将文件从ASC转成UTF8
再将文件重新上传到服务器,并另存文件为product_kind.1。
我可是用二进制方式上传的,不是ASC方式
3.导入到新库中
mysql大部分的表,我都这样操作成功了。但是部分表在导入时,语法出错或是提示什么段错误,经检查,发现,
在INSERT语句中有部分字段值没有后引号,只是一个?,就开始下一字段了。也不知,是原表的原因,还是哪来的问题,反正,我只好用UltraEdit手工查找(?,),替换成(',),然后就通过了。
阅读(1845) | 评论(0) | 转发(0) |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!