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的问题