实战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 相关文章推荐
一个php作的文本留言本的例子(三)
Oct 09 PHP
PHP开发中常用的8个小技巧
Aug 27 PHP
php获取网页内容方法总结
Dec 04 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
php学习笔记 [预定义数组(超全局数组)]
Jun 09 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
Oct 26 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
php回调函数处理数组操作示例
Apr 13 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
php xml实例 留言本
2009/03/20 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
ThinkPHP安装和设置
2015/07/27 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
修复IE9&safari 的sort方法
2011/10/21 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
python小项目之五子棋游戏
2019/12/26 Python
python数据预处理方式 :数据降维
2020/02/24 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
工商管理毕业生推荐信
2013/12/24 职场文书
食品安全检查制度
2014/02/03 职场文书
法律专业自荐信
2014/06/03 职场文书
2015年行政部工作总结
2015/04/28 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS