mysql:1267问题 字符集不同

原因:
错误是在你的结果集中有两种字符集。   
 比如说你在两个表联合查询,一个表的字符集是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 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值