修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况: [编辑] Windows平台windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在这个文件里面加上default-character-set=gbk #或gb2312,big5,utf8然后重新启动mysqlservice mysql restart或/etc/init.d/mysql restart或用其他方法重新启动,就生效了。 [编辑] Unix平台linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:find / -iname my.cnf在这个文件里面加上default-character-set=gbk #或gb2312,big5,utf8然后重新启动mysqlnet stop mysql net start mysql就生效了。
创建表如着样 CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
To yueliangdao0608: 好像不行。我用的是linux,mycnf是这样的: [mysqld] #This option makes InnoDB to store each created table into its own .ibd file. innodb_file_per_table default-character-set=utf8但我用数据库管理工具去看还是乱码,在命令行下用mysql命令去看,还是乱码(我的console也是UTF8)。但是从数据库里面读出来到Java String里面就对了。所以我的程序跑起来表面没什么编码不一致,但是我进入数据库里面一看就是乱码。为什么呢?To zj318503533() :我用数据库管理工具去看,表中每个field的Charset都是UTF8编码。我的操作系统的locale都是UTF8. 为什么还有不一致的情况呢?谢谢!
1. jdbc的Connection中url参数:jdbc:mysql://localhost/DATABASE_NAME?useUnicode=true&characterEncoding=UTF-8, 其中“useUnicode=true&characterEncoding=UTF-8”这段有没有,没有就要加上。2. 建立数据库时候: create database DATABASE_NAME DEFAULT CHARACTER SET utf8; 其中:“DEFAULT CHARACTER SET utf8” 要加上,这样就表示该数据库 DATABASE_NAME 下的所有表和字段(char, varchar)默认是utf8. 另外你在mysql上看,这究竟是在linux下命令行状态下看还是在MySQL Query Brower下看呢? 如果在linux命令行下看多数会乱码,如果在MySQL Query Brower是乱码就按上面2点所改就可以了。
[编辑]
Windows平台windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在这个文件里面加上default-character-set=gbk #或gb2312,big5,utf8然后重新启动mysqlservice mysql restart或/etc/init.d/mysql restart或用其他方法重新启动,就生效了。
[编辑]
Unix平台linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:find / -iname my.cnf在这个文件里面加上default-character-set=gbk #或gb2312,big5,utf8然后重新启动mysqlnet stop mysql
net start mysql就生效了。
好像不行。我用的是linux,mycnf是这样的:
[mysqld]
#This option makes InnoDB to store each created table into its own .ibd file.
innodb_file_per_table
default-character-set=utf8但我用数据库管理工具去看还是乱码,在命令行下用mysql命令去看,还是乱码(我的console也是UTF8)。但是从数据库里面读出来到Java String里面就对了。所以我的程序跑起来表面没什么编码不一致,但是我进入数据库里面一看就是乱码。为什么呢?To zj318503533() :我用数据库管理工具去看,表中每个field的Charset都是UTF8编码。我的操作系统的locale都是UTF8. 为什么还有不一致的情况呢?谢谢!
其中“useUnicode=true&characterEncoding=UTF-8”这段有没有,没有就要加上。2. 建立数据库时候:
create database DATABASE_NAME DEFAULT CHARACTER SET utf8;
其中:“DEFAULT CHARACTER SET utf8” 要加上,这样就表示该数据库 DATABASE_NAME 下的所有表和字段(char, varchar)默认是utf8.
另外你在mysql上看,这究竟是在linux下命令行状态下看还是在MySQL Query Brower下看呢?
如果在linux命令行下看多数会乱码,如果在MySQL Query Brower是乱码就按上面2点所改就可以了。
谢谢!