实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法


Posted in PHP onJune 11, 2010

一直不用这个phpmyadmin,在本机也是用navicat,总感觉phpmyadmin速度较慢。这回不行了,没有独立主机,只好用人家给的phpmyadmin了。

第一步:本地数据导出sql文件。心想这对于navicat小事一桩。直接在数据库上右键“转储sql”(如图1),哗哗,十几秒的时间导出成功。

实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

图1:navicat下对整个数据库转sql

用记事本打开一看,傻眼了。中文全是乱码。咋回事呢?搜索了一下,改变什么连接属性啥的。不管用。试着在单张表上,转储sql,嘿,中文正常。但是82个表,我一个个转储我不累死。不行。看来只能弃用我心爱的navicat了。想起有个mysqldump,好试试它。运行-C:\Documents and Settings\Administrator>mysqldump -uroot -p123  ttg>ttgbk2.sql。打开一看,还是乱码。还不行。唉。。搜索,改成下面的加上指定字符集

C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg>ttgbk2.sql。打开看看。嘿可以了。

 

第二步:打开虚拟主机提供的phpmyadmin.导入选择文件ttgbk2.sql.点执行。那个速度,唉。。。一会儿报错了。在执行lock tables tablename write 时出现access denied错误,原来我是虚拟主机用户没有 lock tables的权限.打开sql一看还真有lock tables 选项。没权限那就不用这个。到网上一搜说加上--skip-lock-tables,心想不错,应该是这个“跳过锁表”嘛

在mysqldump时加上-skip-lock-tables选项,那么命令行就变成
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk --skip-lock-tables ttg>ttgbk3.sql.
结果令人失望,还是有lock tables.
后来看了一下mysqldump --help
才明白--skip-lock-tables是用在备份时候不让读写。但是如果你不想让导出的带lock-tables(因为你导入的时候没有权限嘛,呵呵)应该是使用add-locks=false,这是2个概念。正确的如下
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg --add-locks=false>ttgttg3.sql.

我的版本导出的在记事本中打开是asni格式的。

再次到phpmyadmin处导入。结果是导入了3个表后报错。mysql语句报错。一看中文还乱码。。。。。接近崩溃。

再找原因。把“MySQL 连接校对”改成gbk-chinese-ci,把language改成中文-chinese simplified(如图2)。再把导入时“文件编码”改成“gbk”(默认的是utf-8,当然对应的sql文件的编码用记事本打开就是ansi.)(如图三).再试。。。。

 

 

实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

图二:修改连接校对及language

 

实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

(图三:修改文件的字符集为gbk)

 

终于所有表导入成功。打开一个含有中文的表,字段显示正常。

2点体会:

1、数据库编码归数据库编码。保证连接校对与数据库编码一致即可。

2、sql文件编码归文件编码。保证导入时选择的文件编码与数据库所用编码一致最好。

这是2个编码问题。

服了你了mysql.从知道你有这个编码问题到到现在,你还是这个样子。这个问题还是让很多人困惑。啥时候像sqlserver那样国际化就好了。

PHP 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP编写简单的App接口
Aug 28 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 PHP
Php获取金书网的书名的实现代码
Jun 11 #PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 #PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 #PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 #PHP
腾讯QQ php程序员面试题目整理
Jun 08 #PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 #PHP
php的字符串用法小结
Jun 08 #PHP
You might like
php mssql 时间格式问题
2009/01/13 PHP
php 魔术方法使用说明
2009/10/20 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
纯原生js实现table表格的增删
2017/01/05 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
公众号SVG动画交互实战代码
2020/05/31 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
django的settings中设置中文支持的实现
2019/04/28 Python
python word转pdf代码实例
2019/08/16 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
python识别验证码的思路及解决方案
2020/09/13 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
Ejb技术面试题
2015/04/29 面试题
工程管理专业个人求职信范文
2013/12/07 职场文书
效能风暴心得体会
2014/09/04 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
大四学生个人总结
2015/02/15 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
党员廉政准则心得体会
2016/01/20 职场文书