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;
相關文章
相關標籤/搜索