jsp-java-mysql字符集統一
1、在jsp中,字符集由<%@ page language="java" contentType="text/html;charset=GBK"%>來指定,如果處理中文,需指定為gbk。所以提交的數據全部都使用gbk編碼;
2、在java中,從jsp提交過來的數據是gbk編碼的,而java默認的處理方式是使用ISO-8859-1編碼,所以若在java中能顯示jsp提交過來的gbk編碼方式的數據,就要進行一個轉換:將gbk轉換為ISO-8859-1,這樣數據就可正常顯示。
3、如果要將jsp提交的數據經過java后臺處理,然后放入數據庫中,就又多了一個數據編碼方式:數據庫的數據編碼方式。以mysql為例,默認字符集為latin,所以若將gbk的數據放入,必然出現亂碼,所以首先應改變數據庫的編碼方式為gbk。
綜上,簡單的設置方法如下:
jsp?(gbk)???? ---->???? java(ISO-8859-1)? -------> mysql(gbk)
??????????????????????????????????????????????????????????????? 轉換
這樣設置之后,還有一種情況會出現亂碼:當你在jsp端提交一個id號,然后在java處理端通過id號得到數據庫中的gbk(漢字)數據,這是就會出現亂碼,因為java處理的是ISO-8859-1,你在java到mysql中有了一個ISO-8859-1到gbk的轉換,而這些數據本身就是ISO-8859-1,所以轉換后就出現問題了。
解決辦法:將在java中處理的gbk數據轉換為ISO-8859-1即可。
總之:在jsp,java,mysql三者之間的編碼方式必須統一,不能錯誤的轉換或者不轉換。
2、在java中,從jsp提交過來的數據是gbk編碼的,而java默認的處理方式是使用ISO-8859-1編碼,所以若在java中能顯示jsp提交過來的gbk編碼方式的數據,就要進行一個轉換:將gbk轉換為ISO-8859-1,這樣數據就可正常顯示。
3、如果要將jsp提交的數據經過java后臺處理,然后放入數據庫中,就又多了一個數據編碼方式:數據庫的數據編碼方式。以mysql為例,默認字符集為latin,所以若將gbk的數據放入,必然出現亂碼,所以首先應改變數據庫的編碼方式為gbk。
綜上,簡單的設置方法如下:
jsp?(gbk)???? ---->???? java(ISO-8859-1)? -------> mysql(gbk)
??????????????????????????????????????????????????????????????? 轉換
這樣設置之后,還有一種情況會出現亂碼:當你在jsp端提交一個id號,然后在java處理端通過id號得到數據庫中的gbk(漢字)數據,這是就會出現亂碼,因為java處理的是ISO-8859-1,你在java到mysql中有了一個ISO-8859-1到gbk的轉換,而這些數據本身就是ISO-8859-1,所以轉換后就出現問題了。
解決辦法:將在java中處理的gbk數據轉換為ISO-8859-1即可。
總之:在jsp,java,mysql三者之間的編碼方式必須統一,不能錯誤的轉換或者不轉換。
posted on 2006-11-03 09:03 soochow_hhb 以java論成敗 以架構論英雄 閱讀(1607) 評論(0) 編輯 收藏 所屬分類: Struts