<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    servlet——編碼處理

    字符編碼基本概念:

    JAVA中通常有char、byte、String這幾個概念。char指的是一個UNICODE字符,為16位的整數。byte是字節,字符串在網絡傳輸或存儲前需要轉換為byte數組。在從網絡接收或從存儲設備讀取后需要將byte數組轉換成String。String是字符串,可以看成是由char組成的數組。String和char為內存形式,byte是網絡傳輸或存儲的序列化形式

    編碼方式的簡介

    String序列化成byte數組或反序列化時需要選擇正確的編碼方式。如果編碼方式不正確,就會得到一些0x3F的值。常用的字符編碼方式有ISO8859_1、GB2312、GBK、UTF-8/UTF-16/UTF-32。ISO8859_1用來編碼拉丁文,它由單字節(0-255)組成。GB2312、GBK用來編碼簡體中文,它有單字節和雙字節混合組成。最高位為1的字節和下一個字節構成一個漢字,最高位為0的字節是ASCII碼。UTF-8/UTF-16/UTF-32是國際標準UNICODE的編碼方式。   用得最多的是UTF-8,主要是因為它在對拉丁文編碼時節約空間。

    Java SE API中關于編碼操作的常用方法

    String str = "中國";
    // 取得GB2312編碼的字節
    byte[] bytesGB2312 = str.getBytes("GB2312");
    // 取得平臺缺省編碼的字節(windows為GB2312)
    byte[] bytesDefault = str.getBytes();
    // 用指定的編碼將字節轉換成字符串
    String newStr = new String(bytesGB2312, "GB2312");
    // 用平臺缺省的編碼將字節轉換成字符串(solaris為ISO8859_1,windows為GB2312)
    String newDefaultStr = new String(bytesDefault);
    // 用指定的編碼從字節流里面讀取字符
    InputStream in = new FileInputStream(new File("1.txt"));
    InputStreamReader reader = new InputStreamReader(in, "GB2312");
    char aChar = (char) reader.read();
    當通過瀏覽器向tomcat發出請求訪問servlet時,服務器將請求信息和響應信息封裝在request和response對象交給響應的servlet處理,程序中的字符串默認按ISO-8859的查找和輸出
    案例1.
    提交頁面編碼為:GBKimage
    servlet編碼為系統默認
    String username = request.getParameter("username");
    imageSystem.out.println(username); 
    結果如圖
    分析如下,當request.getParameter("username");獲得客戶端表image單信息時,默認安裝ISO-8859的編碼解碼,然后輸出到控制臺,出現字符編碼不一致產生亂碼
    解決辦法 是在servlet方法頭部添加
    request.setCharacterEncoding("GBK");
    如圖

    案例2.image

    例如:對于輸出:response.getwrite().write("中國"),在瀏覽器中顯示亂碼:  
    應為response.getwrite().write("中國"),默認按照ISO-8859編碼響應服務器發送“中國”,而我們用的瀏覽器默認為GBK或GB2312編碼,從而導致編碼不同產生亂碼

    解決辦法:

    //設置resposne的碼表image
    response.setCharacterEncoding("UTF-8");

    //并且要通知瀏覽器以相應格式打開:
    response.setContentType("text/html;charset=UTF-8");

     

    posted on 2010-04-23 23:28 braden 閱讀(2614) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2010年4月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧美aⅴ在线资源| 怡红院免费全部视频在线视频| 亚洲高清一区二区三区| 亚洲国产aⅴ成人精品无吗| 国产成人亚洲综合a∨| 你懂的免费在线观看| 3d动漫精品啪啪一区二区免费| 欧亚精品一区三区免费| 国产zzjjzzjj视频全免费| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲男人天堂影院| 久久久久久亚洲av无码蜜芽| 香蕉视频在线免费看| 99精品在线免费观看| 麻豆国产人免费人成免费视频| 国产亚洲AV夜间福利香蕉149| 亚洲精品国产啊女成拍色拍| 婷婷亚洲综合五月天小说在线| 波多野结衣免费一区视频 | 国产精品一区二区三区免费| 最近中文字幕免费2019| 国产在线19禁免费观看国产| 亚洲一区二区成人| 精品亚洲福利一区二区| 四虎影视成人永久免费观看视频| 最新仑乱免费视频| 亚洲国产精品成人精品无码区| 亚洲综合久久精品无码色欲| 日本道免费精品一区二区| 麻豆国产VA免费精品高清在线 | 免费A级毛片无码视频| 国产精品成人免费综合| 五月天网站亚洲小说| 亚洲avav天堂av在线网毛片| 亚洲日本在线免费观看| 伊人久久综在合线亚洲91| 亚洲最大中文字幕无码网站| 久久99热精品免费观看牛牛| 亚洲乱码日产精品a级毛片久久| 精品日韩99亚洲的在线发布 | 69视频免费观看l|