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) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值