<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 77777亚洲午夜久久多人| 亚洲人色大成年网站在线观看| 最好免费观看高清在线| 亚洲无成人网77777| 午夜免费福利网站| 免费无码又爽又刺激一高潮| 亚洲人成电影网站| 亚洲片国产一区一级在线观看 | 四虎在线视频免费观看视频| 亚洲欧美日韩中文高清www777| 亚洲一区无码精品色| 永久在线免费观看| 免费在线观看自拍性爱视频| 亚洲国产中文在线视频| 亚洲精品国产电影| 国产v精品成人免费视频400条| 国产高潮流白浆喷水免费A片 | 亚洲午夜久久久久久尤物| 久久久亚洲精品蜜桃臀| 国产成人免费网站| 国产一精品一AV一免费| 亚洲 日韩经典 中文字幕| 亚洲精品无码久久久久sm| 日韩一级视频免费观看| 67pao强力打造国产免费| 日韩在线视频免费| 在线亚洲午夜片AV大片| 亚洲国产精品福利片在线观看| 国产精品无码免费视频二三区| 57pao国产成视频免费播放| 成人a毛片免费视频观看| 亚洲欧美国产欧美色欲| 亚洲国产精品网站久久| 亚洲国产精品成人久久| 亚洲高清成人一区二区三区| 成人免费看黄20分钟| 国产成人免费高清激情明星| 国产色无码精品视频免费| 人妻无码中文字幕免费视频蜜桃| 亚洲一本到无码av中文字幕| 久久精品国产亚洲AV忘忧草18 |