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

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

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

    隨筆 - 45, 文章 - 6, 評論 - 4, 引用 - 0
    數(shù)據(jù)加載中……

    String.getBytes()和new String()

    在Java中,String.getBytes(String decode)方法會根據(jù)指定的decode編碼返回某字符串在該編碼下的byte數(shù)組表示,如

    byte[] b_gbk = "中".getBytes("GBK");
    byte[] b_utf8 = "中".getBytes("UTF-8");
    byte[] b_iso88591 = "中".getBytes("ISO8859-1");

    將分別返回“中”這個漢字在GBK、UTF-8和ISO8859-1編碼下的byte數(shù)組表示,此時b_gbk的長度為2,b_utf8的長度為3,b_iso88591的長度為1。

    而與getBytes相對的,可以通過new String(byte[], decode)的方式來還原這個“中”字時,這個new String(byte[], decode)實際是使用decode指定的編碼來將byte[]解析成字符串。

    String s_gbk = new String(b_gbk,"GBK");
    String s_utf8 = new String(b_utf8,"UTF-8");
    String s_iso88591 = new String(b_iso88591,"ISO8859-1");

    通過打印s_gbk、s_utf8和s_iso88591,會發(fā)現(xiàn),s_gbk和s_utf8都是“中”,而只有s_iso88591是一個不認識 的字符,為什么使用ISO8859-1編碼再組合之后,無法還原“中”字呢,其實原因很簡單,因為ISO8859-1編碼的編碼表中,根本就沒有包含漢字 字符,當然也就無法通過"中".getBytes("ISO8859-1");來得到正確的“中”字在ISO8859-1中的編碼值了,所以再通過new String()來還原就無從談起了。

    因此,通過String.getBytes(String decode)方法來得到byte[]時,一定要確定decode的編碼表中確實存在String表示的碼值,這樣得到的byte[]數(shù)組才能正確被還原。

    有時候,為了讓中文字符適應(yīng)某些特殊要求(如http header頭要求其內(nèi)容必須為iso8859-1編碼),可能會通過將中文字符按照字節(jié)方式來編碼的情況,如

    String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1"),這樣得到的s_iso8859-1字符串實際是三個在 ISO8859-1中的字符,在將這些字符傳遞到目的地后,目的地程序再通過相反的方式String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")來得到正確的中文漢字“中”。這樣就既保證了遵守協(xié) 議規(guī)定、也支持中文。

    posted on 2009-12-09 17:27 liyang 閱讀(7224) 評論(0)  編輯  收藏 所屬分類: j2se

    主站蜘蛛池模板: 亚洲最大成人网色| AV激情亚洲男人的天堂国语| 国产福利在线免费| 免费VA在线观看无码| 久久99国产亚洲精品观看| 免费无码肉片在线观看| 免费国产a理论片| 亚洲欧洲精品视频在线观看| 国产最新凸凹视频免费| 国产成人精品免费久久久久| 亚洲精品蜜夜内射| 亚洲AV永久无码精品水牛影视| 大学生美女毛片免费视频| 中出五十路免费视频| 中文字幕在线日亚洲9| 亚洲AV无码成人精品区天堂| 日本一道本高清免费| 久操视频在线免费观看| 日本系列1页亚洲系列| 亚洲视频中文字幕在线| 亚洲欧洲自拍拍偷精品 美利坚| 精品国产sm捆绑最大网免费站| 九九久久精品国产免费看小说| 亚洲va成无码人在线观看| 亚洲国产一二三精品无码| 日韩成全视频观看免费观看高清| 桃子视频在线观看高清免费视频| 美女视频黄a视频全免费网站色 | 在线观看亚洲av每日更新| AV片在线观看免费| 性xxxx视频免费播放直播| 国产亚洲精品欧洲在线观看| 亚洲国产成a人v在线| 久久99国产亚洲精品观看| 一本久久综合亚洲鲁鲁五月天| 妻子5免费完整高清电视| 久久精品免费视频观看| 国产裸体美女永久免费无遮挡| 亚洲欧洲日韩国产一区二区三区| 国产∨亚洲V天堂无码久久久| 亚洲成A人片77777国产|