最有力的解決辦法連接:
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;