视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql把latin1编码的中文转成gbk(或utf8)编码
2020-11-09 10:17:09 责编:小采
文档


很多项目在初建时由于工程师不严谨或者水平不够选用了错误的数据库编码,用latin1编码存储中文数据,随着项目复杂程度提高,会出现各种编码问题,可以说是后患无

很多项目在初建时由于工程师不严谨或者水平不够选用了错误的数据库编码,用latin1编码存储中文数据,随着项目复杂程度提高,会出现各种编码问题,可以说是后患无穷,网站空间,经过反复测试,网站空间,我总结出一个办法可以把latin1编码的数据库转换成gbk或u8编码,与大家分享

一. latin1 转 gbk

1.导出数据库
mysqldump --default-character-set=latin1 -h xxx.xxx.xxx.xxx -u xxx -P 3306 -pxxxxxxxx db_name table_name > /usr/home/wanghui3/table_name.sql

2.修改 table_name.sql

/*!40101 SET NAMES latin1 */; 改为 /*!40101 SET NAMES gbk */;

建表语句中
DEFAULT CHARSET=latin1; 改为 DEFAULT CHARSET=gbk;

注:不同版本的mysqldump可能稍有出入

3.导入数据库
mysql -uroot -pxxxxxxxx db_name < table_name.sql


二. latin1 转 utf-8

1.第一步不变

2.转换编码
iconv -t utf-8 -f gbk -c table_name.sql > table_name_u8.sql
注意:用latin1保存中文本就是错误的,服务器,表中存储的是错误的latin1编码,但实际上是正确的gbk编码,所以这里输入编码应为gbk

3. 修改table_name_u8.sql,找到 latin1 都改为 utf8

4.导入数据库
mysql -uroot -pxxxxxxxx db_name < table_name_u8.sql

=======================================================

查看系统的字符集和排序方式的设定可以通过下面的两条命令:

mysql> SHOW VARIABLES LIKE 'character%';

mysql> SHOW VARIABLES LIKE 'collation_%';

本文出自 “上帝学编程” 博客,请务必保留此出处

下载本文
显示全文
专题