mysq GBKl乱码

yipeiwu_com5年前PHP代码库
我现在有一个sql文件,里面内容是gbk的。我现在显示全是乱码。
就只是用mysql 4.0.26能显示。
用4.1以上的死活都显示不了。头大了。望大家指点指点,感恩不尽。
我现在装了mysql 5.0.22.
我把my.ini里的字符集都改成 gbk了,用status命令显示,都是 gbk.然后我用source 命令导入sql文件,可是还不行。查询前我用了set names gbk,set names utf8,set names latin1.什么都显示乱码。 
用mysql -uroot -ppassword database<data.sql导入也一样不行。
sql文件头是这样的。
-- MySQL dump 10.10
--
-- Host: localhost    Database: system
-- ------------------------------------------------------
-- Server version        5.0.22-community-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*

无语了。望各位指点。谢谢。
复制代码 代码如下:

完美解决方案:
1. 不管你用什么方法,导出SQL文本文件,确保EDITPLUS打开看到的是中文。
2. 将该SQL文件的语句改成4.1的,删除编码设定的语句,然后保存。
3. 用命令行导入4.1数据库,记得,这个数据库的编码要设为GBK,建表的时候,会自动指定为GBK

附命令:
mysql -hlocalhost -uroot -p**** database --default-character-set=gbk < database.sql

以后导出的时候,也要记得--default-character-set=gbk 

写程序的时候,mysql询前,一定要SET NAMES!

以上是我长时间无数次失败和测试积累下来的经验。

相关文章

php禁止直接从浏览器输入地址访问.php文件的方法

本文实例讲述了php禁止直接从浏览器输入地址访问.php文件的方法。分享给大家供大家参考。具体实现方法如下: 一般来说对于有些重要的文件我们并不希望用户可以直接输入地址进行访问,对此我们...

php数组冒泡排序算法实例

本文实例讲述了php数组冒泡排序算法。分享给大家供大家参考,具体如下: <?php /*@冒泡排序算法 */ $array=array(5,45,22,11,32,28...

由php的call_user_func传reference引发的思考

问题的提出 网友bercmisir在院内留言,针对php手册中的call_user_func函数的文档一事,大致如下: http://php.net/manual/en/function...

php基于curl主动推送最新内容给百度收录的方法

本文实例讲述了php基于curl主动推送最新内容给百度收录的方法。分享给大家供大家参考,具体如下: php curl的好处可以以最快的方式并且模仿post提供我们的url地址给百度搜索引...

PHP多人模块开发原理解析

PHP多人模块开发原理解析

作为世界上最“好”的语言,在web里占据着大概80%的份额,中小公司基本都说 lnmp 架构。当一个仓库开发人员大于1,20人的时候,每个人可能开发不同的模块和功能,用代码版本控制工具比...