我现在有一个sql文件,里面内容是gbk的。我现在显示全是乱码。
就只是用mysql4.0.26能显示。
用4.1以上的死活都显示不了。头大了。望大家指点指点,感恩不尽。
我现在装了mysql5.0.22.
我把my.ini里的字符集都改成gbk了,用status命令显示,都是gbk.然后我用source命令导入sql文件,可是还不行。查询前我用了setnamesgbk,setnamesutf8,setnameslatin1.什么都显示乱码。
用mysql-uroot-ppassworddatabase<data.sql导入也一样不行。
sql文件头是这样的。
--MySQLdump10.10
--
--Host:localhostDatabase:system
--------------------------------------------------------
--Serverversion5.0.22-community-nt
/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*/;
/*!40101SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS*/;
/*!40101SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION*/;
/*!40101SETNAMESutf8*/;
/*!40103SET@OLD_TIME_ZONE=@@TIME_ZONE*/;
/*!40103SETTIME_ZONE='+00:00'*/;
/*!40014SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0*/;
/*!40014SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0*/;
/*!40101SET@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询前,一定要SETNAMES!
以上是我长时间无数次失败和测试积累下来的经验。