MySQL中如何处理中文字符问题

最有力的解决办法连接:
http://www.busfly.net/post/58.html
--------------------------------------------------------------------------

MySQL的老手们:
本人用MySQL时不可以处理中文,安装时设置字符集为UTF-8或gb2312都无论用。例如:
在MySQL中建立一个简单的Person表,其中仅包含两个字段:整数的id和字符型的name.

向其中插入非中文的数据没问题,而用中文就有问题:
如:试图执行:

update appdb.person set name='中文' where id=1

就获得以下错误信息:

错误代码 1366,SQL 状态 HY000:Incorrect string value: '\xE4\xB8\xAD\xE6\x96\x87' for column 'name' at row 1

请指教。 该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给全部参与回答的会员

回答

中文报错无非就是编码的配置不对,若是用utf-8,全部的地方都要用utf-8的字符编码,而你一顿乱改,这改一下那改一下,根本不对,要把库,表,你的项目中的页面,xml,类都统一编码。
若是插入中文很差使的话 把UTF-8改为gbk.
停掉mysql服务,修改my.ini文件,修改default-character-set=gbk和default-character-set=gbk。
若是你是在mysql Administrator中建的表,默认的字符编码试latin1,我插入的字符串为utf8编码的,修改table的编码为utf8

liveHappy (架构师) 2011-01-08
在mysql下面
Mysql代码   收藏代码
  1. mysql> show variables like '%char%';  
  2. +--------------------------+----------------------------+  
  3. | Variable_name            | Value                      |  
  4. +--------------------------+----------------------------+  
  5. | character_set_client     | latin1                     |  
  6. | character_set_connection | latin1                     |  
  7. | character_set_database   | latin1                     |  
  8. | character_set_filesystem | binary                     |  
  9. | character_set_results    | latin1                     |  
  10. | character_set_server     | latin1                     |  
  11. | character_set_system     | utf8                       |  
  12. | character_sets_dir       | /usr/share/mysql/charsets/ |  
  13. +--------------------------+----------------------------+  
  14. 8 rows in set (0.00 sec)  


而后设置
Mysql代码   收藏代码
  1. set character_set_connection=gbk;  
  2. set character_set_client=gbk;  
  3. set character_set_results=gbk;  


在数据连接那层,加上
Xml代码   收藏代码
  1. jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=gbk  
beneo (架构师) 2011-01-08
xE4\xB8\xAD\xE6\x96\x87
引用
你这个是utf8的,你把上面的gbk都改为utf8
beneo (架构师) 2011-01-08

其实你彻底不必那么麻烦,你主要的目的不就是想直接在数据库中插入中文么,一个命令将能够解决的,你能够在打开数据库的时候,首先执行一条命令:
[color=red]set names = gbk;
好了, 这样你就能够随便的插入中文了。
[/color]
SunBo_Java (初级程序员) 2011-01-08
呵呵,很差意思,上面的那个可能有点乱。

命令是:

set names = gbk;
相关文章
相关标签/搜索