選擇java 進(jìn)入自由開放的國度

          隨筆 - 49, 文章 - 3, 評論 - 154, 引用 - 1
          數(shù)據(jù)加載中……

          jsp-java-mysql字符集統(tǒng)一

          1、在jsp中,字符集由<%@ page language="java" contentType="text/html;charset=GBK"%>來指定,如果處理中文,需指定為gbk。所以提交的數(shù)據(jù)全部都使用gbk編碼;
          2、在java中,從jsp提交過來的數(shù)據(jù)是gbk編碼的,而java默認(rèn)的處理方式是使用ISO-8859-1編碼,所以若在java中能顯示jsp提交過來的gbk編碼方式的數(shù)據(jù),就要進(jìn)行一個(gè)轉(zhuǎn)換:將gbk轉(zhuǎn)換為ISO-8859-1,這樣數(shù)據(jù)就可正常顯示。
          3、如果要將jsp提交的數(shù)據(jù)經(jīng)過java后臺處理,然后放入數(shù)據(jù)庫中,就又多了一個(gè)數(shù)據(jù)編碼方式:數(shù)據(jù)庫的數(shù)據(jù)編碼方式。以mysql為例,默認(rèn)字符集為latin,所以若將gbk的數(shù)據(jù)放入,必然出現(xiàn)亂碼,所以首先應(yīng)改變數(shù)據(jù)庫的編碼方式為gbk。

          綜上,簡單的設(shè)置方法如下:

          jsp?(gbk)???? ---->???? java(ISO-8859-1)? -------> mysql(gbk)
          ??????????????????????????????????????????????????????????????? 轉(zhuǎn)換
          這樣設(shè)置之后,還有一種情況會出現(xiàn)亂碼:當(dāng)你在jsp端提交一個(gè)id號,然后在java處理端通過id號得到數(shù)據(jù)庫中的gbk(漢字)數(shù)據(jù),這是就會出現(xiàn)亂碼,因?yàn)閖ava處理的是ISO-8859-1,你在java到mysql中有了一個(gè)ISO-8859-1到gbk的轉(zhuǎn)換,而這些數(shù)據(jù)本身就是ISO-8859-1,所以轉(zhuǎn)換后就出現(xiàn)問題了。
          解決辦法:將在java中處理的gbk數(shù)據(jù)轉(zhuǎn)換為ISO-8859-1即可。

          總之:在jsp,java,mysql三者之間的編碼方式必須統(tǒng)一,不能錯誤的轉(zhuǎn)換或者不轉(zhuǎn)換。

          posted on 2006-11-03 09:03 soochow_hhb 以java論成敗 以架構(gòu)論英雄 閱讀(1615) 評論(0)  編輯  收藏 所屬分類: Struts

          主站蜘蛛池模板: 绥江县| 乌兰县| 年辖:市辖区| 井冈山市| 屏南县| 望奎县| 富蕴县| 黔西县| 平舆县| 玉树县| 胶南市| 宁津县| 华亭县| 鄂托克前旗| 山阴县| 平顺县| 东宁县| 蛟河市| 阜新市| 浑源县| 庆阳市| 漯河市| 稷山县| 达孜县| 资溪县| 宣武区| 神农架林区| 黑龙江省| 黄大仙区| 通河县| 渝中区| 赞皇县| 安阳市| 凤庆县| 隆化县| 遂川县| 安岳县| 玛曲县| 故城县| 抚松县| 慈溪市|