MySQL GBK→UTF-8编码转换


Posted in PHP onMay 24, 2007

前言:
第一次写教程,其实算不得教程,只是想总结个转换的手记。如果中间有错误,或者办法不够理想,大家回贴研究下。
另外,我也希望我们论坛不仅仅作为闲聊的地方,也希望大家能活跃我们论坛的学习气氛,毕竟我们都来自一个应该给我们知识的地方,不论你从那里获得了多少你需要的知识。

好了,言归正传。

一准备:
环境:MySQL4.1.x及以上版本。
Convertz——文本编码转换工具,molyx上介绍的,我采用的。其实这类工具很多。

二理论:
MySQL从4.1版本开始内部存储字符集支持了UTF-8,这个我也是这几天才看到的。因为升级论坛过程中,服务器数据库环境为4.0.26当时不知道并不支持utf-8字符集,还废了些周折。这样如果涉及到UTF-8转储还要升级MySQL版本到4.1以上。
转换的大概思路是——备份(有备无缓)→修复数据库→mysqldump导出→Convertz转换编码→修改转换后文件→mysqldump导入恢复

三实践:
1、备份。这个不需要太多说了你可以采用任何一种常规的备份方式只要你自己恢复的了。
2、修复。mysqlcheck -r -u user -p 如果全OK那就OK了,如果不全OK,再来遍。还没全OK,不知道怎么弄了。
3、导出。由于latin1为默认存储,所以你需要事先确定你数据库的编码格式。举例,lncz.net原为gbk编码,但存储为latin1,这样导出时应该指定编码为latin1,导出后才能以ANSI形式正确显示gbk的文字。
导出命令:mysqldump database_name field > path --default-character-set=latin1 -u user -p
数据库大需要分段,不然接下来的操作会很麻烦。我是单独把每个表导出来的。当时想法比较简单,因为数据库有坏表,只想在恢复的时候知道哪个表出错单独修复。
4、转换。Convertz用这个软件很简单,不必多说了。
5、修改。我在尝试直接导入恢复数据库时,失败了N次,每次都乱码。仔细想过之后才明白,如果你直接导回去,数据库还是用默认的latin1去存储,而你的现在的编码是utf-8所以它会再进行一次转换便出错了。这里MySQL到底怎么处理的我还不是十分清楚,谁知道麻烦相告。这时我们需要对转换好的文件加入语句 “set names utf8;”注意不是utf-8;并且需要将文件中“CHARSET=latin1;”改为“CHARSET=utf8;”来指定表的存储编码。
6、恢复。恢复过程按道理应该是很简单的,都是mysqldump处理。需要注意一点就是如果你的数据库大,要做全局变量的修改max_allowed_packet默认为1M,看你数据库表的大小,相应修改my.ini文件。
导入命令:mysqldump database_name < path -u user -p 导入顺利的话你的数据库编码就已经转换为utf-8了。

在下比较菜,如果有错误请指正,表笑我。以上仅供参考。 

PHP 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
在数据量大(超过10万)的情况下
Jan 15 PHP
附件名前加网站名
Mar 23 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
php获取远程文件大小
Oct 20 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
自制PHP框架之模型与数据库
May 07 PHP
php输出形式实例整理
May 05 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 #PHP
站长助手-网站web在线管理程序 v1.0 下载
May 12 #PHP
MySQL授权问题总结
May 06 #PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 #PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 #PHP
什么是MVC,好东西啊
May 03 #PHP
php中的MVC模式运用技巧
May 03 #PHP
You might like
PHP中读写文件实现代码
2011/10/20 PHP
PHP查询网站的PR值
2013/10/30 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
js中prototype用法详细介绍
2013/11/14 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
Hadoop中的Python框架的使用指南
2015/04/22 Python
简单了解python单例模式的几种写法
2019/07/01 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
Python之多进程与多线程的使用
2021/02/23 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
会计专业毕业生推荐信
2013/11/05 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
学生实习证明范文
2014/09/28 职场文书
2014年维稳工作总结
2014/11/18 职场文书
超市工作总结范文2014
2014/12/19 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
心灵捕手观后感
2015/06/02 职场文书
化工厂员工工作总结
2015/10/15 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python