迷途
1级
2008-10-30 回答
1、使用show variables like 'character_set_%'; 查看你的mysql的字符集+--------------------------+----------------------------+
| variable_name |value |
+--------------------------+----------------------------+
| character_set_client |utf8 |
| character_set_connection | utf8 |
| character_set_database |utf8 |
| character_set_filesystem | binary |
| character_set_results |utf8 |
| character_set_server |utf8 |
| character_set_system |utf8 |
| character_sets_dir |/usr/share/mysql/charsets/ |
+--------------------------+----------------------------+如果里面有很多是latin,那么你需要修改它的编码了,一般可以通过setcharacter_set**来修改,不过我这样修改,重新打开命令窗口再查看时,字符集又恢复成原来的样子了,超级郁闷。这里通过修改其配置文件的方式就可以了(windows安装目录下的my.ini),修改为:[mysql]default-character-set=utf82、这时再插入中文时,会报data toolong的错误,此时需要修改my.ini中的sql-mod,把strict_trans_tables,去掉就可以了。3、通过status命令查看mysql ver 14.12 distrib 5.0.45, for win32 (ia32)connection id: 8
current database: test
current user:root@localhost
ssl: not in use
using delimiter: ;
server version: 5.0.45-community-nt mysql community edition(gpl)
protocol version: 10
connection: localhost via tcp/ip
server characterset: latin1
db characterset: latin1
client characterset: gbk
conn. characterset: gbk
tcp port: 3306
uptime: 7 hours 39 min 19 sec
threads: 2 questions: 174 slow queries: 0 opens: 57 flush tables: 1open ta
bles: 1 queries per second avg: 0.006这里server characterset还是latin1,所以还需要修改它的字符集,alter table userscharacter set gbk;然后通过show create table users查看表结构:| users | create table `users` (
`userid` int(11) default null,
`username` char(20) character set latin1 default null
) engine=innodb default charset=gbk |
+-------+-----------------------------------------------------------------------4、再试试看能不能插入中文,如果还不行的话,设置表结构中需要保存中文的字段的字符集,alter table users modify username char(20) character setgbk;5、继续尝试,如果还是不行,则使用set names gbk,现在应该可以了!