日期:2014-05-16  浏览次数:20858 次

mysql字符乱码问题
各位大虾们。。帮我解决下面这问题吧。。建表时我加入了character   set   utf8;,可后面还是出现了这个问题,在sqlyog中插入insert   into   admin(name,password,power)   values( 'etp ', 'b783ea905e5e9e51bd2f6b88 ', '所有权限 ');就是power的所有权限插不进去

sql命令运行时出现下面的错误。
error   1406 <22001> :data   too   long   for   coumn   'power '   at   row   1



------解决方案--------------------
加[]是SQLSERVER的用法。MYSQL里没有这个用法。

这个是因为编码没有设置对造成的。


在MY.CNF 或者MY.INI里添加

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

然后重新启动MYSQL服务器。

如果要检查你的编码是否正确。
输入 show variables like '%char% ';
------解决方案--------------------
如果是中文乱码的话,
在MY.CNF 或者MY.INI里添加
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=gbk

然后重新启动MYSQL服务器。

不过,你这个错误
error 1406 <22001> :data too long for coumn 'power ' at row 1
会不会是表的问题呀.字段长度设的太小了?
------解决方案--------------------
确定你的character_set_client = utf8;
默认情况下character_set_client = latin1;

在执行INSERT语句之前,可以执行SET NAMES 'utf8';
这样会自动设置
character_set_client = utf8;
character_set_connection = utf8;
character_set_results = utf8;

这样应该能解决lz的问题