Chinaunix首页 | 论坛 | 博客
  • 博客访问: 259821
  • 博文数量: 36
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 993
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-13 08:59
文章分类

全部博文(36)

文章存档

2017年(1)

2016年(4)

2015年(9)

2014年(8)

2013年(14)

分类: Mysql/postgreSQL

2013-10-24 14:34:14

当你安装的数据库的时候,如果没有自己手动配置编码默认选择的应该是gb2312编码,开始用的时候可能没什么问题,但是当遇到一些生僻字的时候就会发现不能显示,或显示乱码。
1.乱码出现的原因:
由于字符集GB2312只收录了6763个汉字,导致一些生僻字无法正常的显示。
2.确定解决的办法:
把字符集由GB2312改为GBK或utf8。但是由于不能丢弃之前的数据,如何修改字符集成了关键。
3.字符集的修改:

a. 先导出表结构

mysqldump -u root -p --default-character-set=gbk -d 数据库名 > createdb.sql

其中参数-d表示只导出表结构,不导出数据。

b. 打开createdb.sql,手工把gb2312替换成utf-8。

c. 导出所有记录

mysqldump -u root -p --quick --no-create-info --extended-insert --default-character-set=gb2312 数据库名 > data.sql

其中参数--no-create-info表示不生成建表语句;--default-character-set=gb2312表示按照原来字符集导出所有数据。

d. 打开data.sql,手工把SET NAME gb2312改成SET NAME gbk或utf8。

注意:如果data.sql很大,可能需要找一些替换工具来完成替换操作,否则可以直接用UltraEdit之类的编辑工具打开修改。

e. 在新的服务器上创建表,导入表的结构,执行createdb.sql。

mysql -u root -p 数据库名 < createdb.sql

f. 导入数据,执行data.sql

mysql -u root -p 数据库名 < data.sql

g. 创建你所需要的数据库用户。
到这儿已经完成了数据库字符集从gb2312到gbk或utf8的修改,接下去可以登录数据库,手工把显示为"?"的乱码字重新更新一下。




阅读(2308) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~