程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> java 保存漢字到mysql出現Incorrect string value 解決辦法

java 保存漢字到mysql出現Incorrect string value 解決辦法

編輯:MySQL綜合教程

今天寫一個團購網站練練手,用到了S2SH大整合,有點激動人心,但是遇到的麻煩也不少,畢竟第一次做嘛,這篇日志要說的是一個大熟人,Incorrect string value: 'xE6x9BxB9xE5x86xAC...' for column 'realname' at row 1,嘿嘿,以前見到的不少吧。

激動人心的寫完代碼,測試一切正常,可是輸入中文就杯具了,出現以下錯誤。

 

心裡明白出現這個錯誤,十有八九都是數據庫教程編碼出問題了,以前懶得研究,還是抱有僥幸心裡在後台寫了個Syso,看看控制台的輸出是否亂碼,結果顯示正常,沒有亂碼,那就確定是數據庫的編碼問題了。

我用的的 mysql教程 數據庫,版本5.1。

使用 show variables like 'character%' 查看數據庫的編碼,果然是latin1,意料之中。

如果項目正在測試當中,數據不重要的話,一勞永逸的解決辦法是,使用alert database tuanplus character set utf8 更改數據庫的編碼格式,再重新建表(Hibernate中,指定hibernate.hbm2ddl.auto=create,重新部署項目,hibernate會自動重新建表),查看此時的數據庫編碼,嘿嘿,是utf8了。異常解除。

如果項目中的數據是重要數據的話,還是有解決辦法滴。

使用 alter table address convert to character set utf8 轉換需要插入漢字的數據表編碼為utf8即可(此例中的數據表是address):

事先最好備份數據,以免意外

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved