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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
php利用gd库为图片添加水印
Nov 09 PHP
Yii2框架中日志的使用方法分析
May 22 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
laravel migrate初学常见错误的解决方法
Oct 11 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安装问题
2006/10/09 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
详解Python pygame安装过程笔记
2017/06/05 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
python实现ftp文件传输功能
2020/03/20 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
应届大专毕业生个人自荐信
2013/09/22 职场文书
银行实习生的自我评价
2013/12/09 职场文书
记帐员岗位责任制
2014/02/08 职场文书
浅谈MySQL函数
2021/10/05 MySQL
对讲机知识
2022/04/07 无线电