程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Spring+Hibernate亂碼解決方案

Spring+Hibernate亂碼解決方案

編輯:關於JAVA

今天用spring+hibernate進行中文插入時出現亂碼問題,通過查資料和自己反復測試終於解決了.

總結了兩種方法:

1、使用gb2312編碼,變更mysql的數據庫編碼字符集。cmd模式下用mysql --default-character-set=gb2312 -u root -p進入,然後再每個建表語句後增加default character set gb2312;

重新建立數據表。

值得注意的地方是:applicationContext.xml中的數據庫連接必須設置為<property name="url"><value>jdbc:mysql://localhost/struts?useUnicode=true&characterEncoding=gb2312</value></property>,這樣插入的才是正常的中文,否則就是亂碼。

2、在進行數據保存之前進行gb2312到iso8859-1編碼的轉換,applicationContext.xml中的數據庫連接必須設置為<property name="url"><value>jdbc:mysql://localhost/struts</value></property>,這樣插入的才是正常的中文,否則就是亂碼。

它們相同的地方是在用jsp進行中文內容填加時,都要進行gb2312到iso8859-1編碼的轉換:

String name;
name=trans(request.getParameter("name"));
String trans(String chi)
{
 String result = null;
 byte temp [];
 try
 {
  temp=chi.getBytes("iso-8859-1");
  result = new String(temp);
 }
 catch(java.io.UnsupportedEncodingException e)
 {
  System.out.println (e.toString());
 }
 return result;
}
String trans(Object chi)
{
 return trans(chi.toString());
}

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