原因:
错误是在你的结果集中有两种字符集。
比如说你在两个表联合查询,一个表的字符集是latin1,另一个是utf8,
这样在你的结果集中有两种字符集,mysql会报上面的错误。
一个表中不同的字段使用不同的字符集,也是一个道理。
用SHOW CREATE TABLE table_name;可以看出具体的字符集设置。
查了帮助手册,说是user的字符集没有设,默认为utf8,将其转为latin1或gb2312等字符集
解决方法:
将不同的字符集,转化成统一的字符集。
表的编码转换可以用:(MySQL Version > 4.12)
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
之前的版本可以用:
ALTER TABLE tbl_name CHARACTER SET charset_name;
MySQL官方解释:
http://dev.mysql.com/doc/refman/5.0/en/charset-collation-charset.html
附加:
修改字段类型的方法:(经过 google 搜索)
登录MYSQL后执行这个语句就可以了:
ALTER TABLE `phrase` CHANGE `varname` `varname` VARCHAR( 250 ) NOT NULL;
修改字段字符集的方法:
mysql〉show full columns from table就會發現兩個字段的字符集是不一樣的。
通過用
ALTER TABLE `tname` CHANGE `column` `column` VARCHAR( 15 ) CHARACTER SET latin1 NOT NULL。
(假設變更為字符型,並且字符集類別為latin1 latin1 )
修改.ini文件的方法:(不建议使用)
在mysql 的安装目录下有一个my.ini文件,
打开找到[mysql]下的default-character-set=*****,改成default-character-set=gb2312,重启mysql 即可。
mysql:1267问题 字符集不同
最新推荐文章于 2024-08-10 12:01:27 发布