当前位置: 首页 > 图文教程 > 网络编程 > PHP > mysq GBKl乱码

PHP
PHP技巧:详解phplib模板使用过程及运行原理
PHP技巧:Smarty+adodb分页示例
PHP技巧:PHP脚本中关于拼写检查函数库
PHP技巧:PHP脚本编程中的文件系统函数库
PHP技巧:PHP中几种删除目录的三种方法
学习PHP技术:txtSQL安装手册中文版
学习PHP:PHP的通用检测函数总结
详细学习PHP中对文件和目录的操作方法
PHP+MYSQL实例:网站在线人数的程序代码
Linux操作系统启动httpd失败的解决方法
初学:在PHP开发中如何使用Session?
PHP初学者遇到的中文乱码解决方案
PHP实例:实现文件上传的程序源码
PHP实例:常用的数值判断函数
PHP实例源代码:PHP实现翻页处理的类
PHP实例:从数组里筛选出重复的数据
PHP实例:用PHP实现windows风格的树型菜单
PHP实例程序:实现给上传图片加水印图案的做法
PHP实例:用PHP编写的网上调查投票系统
PHP实例:一个非常全面获取图象信息的PHP函数

PHP 中的 mysq GBKl乱码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 50 ::
收藏到网摘: n/a

我现在有一个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!
以上是我长时间无数次失败和测试积累下来的经验。