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 相关文章推荐
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
php实例分享之mysql数据备份
May 19 PHP
PHP中require和include路径问题详解
Dec 25 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
PHP自毁程序(慎用)
Jul 09 PHP
php数字每三位加逗号的功能函数
Oct 22 PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
Apr 01 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安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
python框架django基础指南
2016/09/08 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
财务部岗位职责
2013/11/19 职场文书
小区门卫管理制度
2014/01/29 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
模具毕业生推荐信
2014/02/15 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
培训专员岗位职责
2014/02/26 职场文书
毕业生就业意向书
2014/04/01 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
小学生思想品德评语
2014/12/31 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书