MYSQL数据库由latin1转换为utf8

需要将MySQL数据库由latin1编码转换为utf8编码,网上搜了些方法都不管用。

自己多次摸索找出了一个可行方法:

0.下载工具Navicat for MySQL

1.将数据库的表结构导出 mysqldump -uuser -p -d db > db.sql

2.编辑db.sql,将latin1替换为utf8

3.新建一个新的数据库newdb,运行db.sql创建表

4.用Navicat for MySQL连接数据库,在要导出的数据库表上右键,选择导出向导。

4.1.选择XML文件(*.xml),下一步;

4.2.全选所有表,在导出到列中选择每个表导出的路径,点击高级,选择编码为1252 (ANSI - Latin I);

4.3.一直下一步,直到最后,点击开始。

5.用UE或NotePad++打开导出的xml文件,转换为UTF-8 无BOM编码格式。

6.对于每一个表,打开导入向导

6.1.选择XML文件(*.xml),下一步;

6.2.选择要导入的xml文件,下一步;

6.3.选择表示一个表行的标签为RECORD;

6.4.一直下一步,直到最后,点击开始。

整个转换过程完成,所以表数据正常转换,包括特殊符号和单引号。

注意:我有个表的格式为UTF8的,先用UTF8导出(4.2步中默认UTF8),不管怎么转换都是乱码。

后面才注意到,虽然表编码为UTF8,但是在网页程序中存储数据的时候都是用的默认编码latin1。

于是把它当做latin1导出,成功转换。


补注:其实网页代码不能转换,<a></a>会被XML转码。。。

解决方案:导出为sql文件,然后执行sql文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值