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

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

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

    俊星的BLOG

    JAVA字符編碼

    測試代碼:
        public static void main(String[] args) {
            Locale.setDefault(Locale.US);
            String str 
    = "中G中";
            String codes[] 
    = "iso8859-1""utf-8""utf-16""unicode""gbk""gb2312" };
            
    try {
                System.out.println(str);
                System.out.println(
    "default code:" + System.getProperty("file.encoding"));
                
    for (String s : codes) {
                    System.out.println(s 
    + "" + toHex(str.getBytes(s)));
                }

            }
     catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

        }


        
    private static String toHex(byte[] buffer) {
            StringBuffer sb 
    = new StringBuffer(buffer.length * 3);

            
    for (int i = 0; i < buffer.length; i++{
                sb.append(Character.forDigit((buffer[i] 
    & 0xf0>> 416));
                sb.append(Character.forDigit(buffer[i] 
    & 0x0f16));
                sb.append(
    " ");
            }


            
    return sb.toString();
        }

    輸出如下:
    中G中
    default code:GBK
    iso8859-
    1: 3f 47 3f 
    utf-
    8: e4 b8 ad 47 e4 b8 ad 
    utf-
    16: fe ff 4e 2d 00 47 4e 2d 
    unicode: ff fe 2d 4e 
    47 00 2d 4e 
    gbk: d6 d0 
    47 d6 d0 
    gb2312: d6 d0 
    47 d6 d0 

    相關說明:
    1、通過System.getProperty("file.encoding")獲取到當前JVM的默認字符編碼方式,如GBK
    2、iso8859-1則是應用于英文和歐洲其他語言的單字節編碼字符集,“3f”其實對應就是“?”。
    3、utf-8則是unicode編碼的一種轉換方式(Unicode Transformation Format),兼容于ASCII編碼,如對于中文則使用3個字節來存儲,對于英文使用一個字節存儲。
    4、utf-16是unicode編碼的另一種轉換方式,每個直接都采用2個字節來存儲,所以不兼容于ASCII;
          其中“fe ff”是Byte Order Mark(BOM)表示采用的編碼方式為utf-16。
    5、此處的unicode輸出和utf-16本質相同,只不過大小尾序的問題導致單個字節輸出順序相反;
          其中對于windows和linux平臺的utf-16默認采用小尾序(LE little Endion),mac平臺采用大尾。
    6、gbk和gb2312是中文字符集,對于每個字符均采用2個字節存儲,其中gbk兼容gb2312并且還可表示繁體。

    關于存儲字節的計算,假設現在有N個中文和M個英文字符,則如下的計算方式(編碼方式:字節數):
    GBK:2*N+M
    UTF-8:3*N+M
    UTF-16:2*(N+M+1)
    ISO8859-1:N+M

    posted on 2009-05-26 00:12 俊星 閱讀(220) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 一级毛片免费视频| 亚洲精品岛国片在线观看| 亚洲日韩一区精品射精| 亚洲AV无码乱码在线观看牲色 | 免费成人在线视频观看| 亚洲国产精品综合久久网各 | 亚洲中文字幕在线无码一区二区| 免费看美女被靠到爽的视频| 在线观看肉片AV网站免费| 亚洲成_人网站图片| 亚洲熟妇av一区二区三区| 毛片免费在线观看网站| a毛片在线还看免费网站| 亚洲乱亚洲乱妇24p| 亚洲国产精品一区| 亚洲AⅤ无码一区二区三区在线| 精品无码AV无码免费专区| 免费一级毛片在线播放视频免费观看永久| 亚洲AV日韩AV天堂久久| 亚洲成aⅴ人片久青草影院| 可以免费看黄的网站| 成人性做爰aaa片免费看| 亚洲av无码成人影院一区| 亚洲精品无码久久毛片波多野吉衣| 亚洲国产综合久久天堂| 成人免费男女视频网站慢动作| 久久久久免费看黄a级试看 | 2021在线永久免费视频| 一级毛片完整版免费播放一区| 亚洲成aⅴ人在线观看| 亚洲国产精品VA在线观看麻豆 | 午夜视频在线在免费| 嫩草在线视频www免费观看| 日本视频免费观看| 亚洲精品国产精品| 久久亚洲精品专区蓝色区| 中文字幕亚洲精品| 亚洲电影一区二区| 亚洲精品乱码久久久久66| 亚洲精品国自产拍在线观看| 全部免费国产潢色一级|