最有力的解决办法连接:
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
在mysql下面
- mysql> show variables like '%char%';
- +--------------------------+----------------------------+
- | Variable_name | Value |
- +--------------------------+----------------------------+
- | character_set_client | latin1 |
- | character_set_connection | latin1 |
- | character_set_database | latin1 |
- | character_set_filesystem | binary |
- | character_set_results | latin1 |
- | character_set_server | latin1 |
- | character_set_system | utf8 |
- | character_sets_dir | /usr/share/mysql/charsets/ |
- +--------------------------+----------------------------+
- 8 rows in set (0.00 sec)
而后设置
- set character_set_connection=gbk;
- set character_set_client=gbk;
- set character_set_results=gbk;
在数据连接那层,加上
- jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=gbk
xE4\xB8\xAD\xE6\x96\x87
引用
你这个是utf8的,你把上面的gbk都改为utf8
其实你彻底不必那么麻烦,你主要的目的不就是想直接在数据库中插入中文么,一个命令将能够解决的,你能够在打开数据库的时候,首先执行一条命令:
[color=red]set names = gbk;好了, 这样你就能够随便的插入中文了。
[/color]
呵呵,很差意思,上面的那个可能有点乱。
命令是:
set names = gbk;