• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會(huì)很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            @import url(http://www.shnenglu.com/cutesoft_client/cuteeditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

            最低位地址存放高位字節(jié),可稱高位優(yōu)先,內(nèi)存從最低地址開始按順序存放(高數(shù)位數(shù)字先寫)。最高位字節(jié)放最前面。

            例如“漢”字的Unicode編碼是6C49。如果將6C寫在前面,就是big endian。還是將49寫在前面,就是little endian


            Endian可讀為字節(jié)序.


            0x11BB,高字節(jié)為11,低字節(jié)為BB

            Big Endian: 高字節(jié)存儲(chǔ)在高位,低字節(jié)存儲(chǔ)在低位: 高字節(jié)結(jié)束存儲(chǔ): BB 11

            Little Endian: 高字節(jié)存儲(chǔ)在低位,低字節(jié)存儲(chǔ)在高位: 低字節(jié)結(jié)束存儲(chǔ): 11 BB

            數(shù)字的高低位與存儲(chǔ)中位置偏移的高低位正好相反. Little Endian更適合閱讀,因?yàn)?1BB存儲(chǔ)為11BB.

            import java.nio.ByteOrder;

            public class Test {

                public static void main(String[] args) {

                    char c = '\u11BB';

                    String endian = Integer.toHexString(c & 0xFF).toUpperCase();

                    System.out.println(endian.equals("BB") ? "Little Endian" : "Big Endian");

                    System.out.println(ByteOrder.nativeOrder());

                }

            }

             


            BOM(字節(jié)序標(biāo)志): Byte Order Mark

            UTF-16是以兩個(gè)字節(jié)為編碼單元,要考慮字節(jié)序,所以使用BOM來標(biāo)志字節(jié)序: FEFF or FFFE.

            FEFF 又叫做 Zero Witdh No-Break Space,它在UCS中是不存在的字符,所以用來標(biāo)志字節(jié)序,又稱做BOM.

            FEFF: Big Endian

            FFEF: Little Endian

            A: The following table summarizes some of the properties of each of the UTFs. 

            NameUTF-8UTF-16UTF-16BEUTF-16LEUTF-32UTF-32BEUTF-32LE
            Smallest code point 0000 0000 0000 0000 0000 0000 0000
            Largest code point 10FFFF 10FFFF 10FFFF 10FFFF 10FFFF 10FFFF 10FFFF
            Code unit size 8 bits 16 bits 16 bits 16 bits 32 bits 32 bits 32 bits
            Byte order N/A <BOM> big-endian little-endian <BOM> big-endian little-endian
            Fewest bytes per character 1 2 2 2 4 4 4
            Most bytes per character 4 4 4 4 4 4 4

             

            Windows保存的Unicode文件是含有BOM的,UTF-8編碼的文件以字節(jié)為編碼單元,不存在字節(jié)序的問題,但可以使用BOM來表示編碼方式: 文件前3字節(jié)是EF BB BF,為UTF-8編碼。因?yàn)镕EFF在UTF-8里的編碼為EF BB BF.

            Mac下的TextEdit保存為UTF-8就不含BOM

            TextWrangler可以選擇是否包含有BOM

             


            一個(gè)漢字在Unicode中用兩個(gè)字節(jié)表示,a-z等字母也是兩個(gè)字節(jié)。

            UTF-8是Unicode的一種表現(xiàn)形式(Unicode編碼值使用UTF-8方式編碼存儲(chǔ)),是一種變長(zhǎng)的表達(dá)方式,把字符的Unicode編碼在文件中表現(xiàn)出來,從一個(gè)字節(jié)到三個(gè)字節(jié)不等(為了減少如a-z等ascii碼字符占用的空間,因?yàn)樗麄兂霈F(xiàn)太頻繁了).

            UTF-8編碼范圍為:

            0000 - 007F : 0xxxxxxx

            0080 - 07FF : 110xxxxx 10xxxxxx

            0800 - FFFF : 1110xxxx 10xxxxxx 10xxxxxx

            如"漢"的Unicode編碼為6C49,在0800 - FFFF之間,所以要使用3字節(jié)模板: 1110xxxx 10xxxxxx 10xxxxxx

            6C49的二進(jìn)制是: 0110 110001 001001

            用這個(gè)二進(jìn)制流依次代替3字節(jié)模板中的x得: 1110 0110 10110001 10001001,即E6 B1 89

            保存到文件中的就是3個(gè)字節(jié)E6 B1 89,而不是2個(gè)字節(jié)6C 49


            // 給InputStreamReader指定要讀取的文件的編碼,讀取時(shí)就不會(huì)出現(xiàn)亂碼了.

             

            public class TextFileReader {

                public static void main(String[] args) throws Exception {

                    String filename = "source/demo-gb18030.txt";

                    String encoding = "gb18030";

                    printFile(filename, encoding);

                }


                // 打印出文件的文本內(nèi)容, 使用指定的編碼讀入文件

                public static void printFile(String filename, String encoding) throws IOException {

                    InputStreamReader isr = new InputStreamReader(new FileInputStream(filename), encoding);

                    BufferedReader reader = new BufferedReader(isr);

                    String line = null;

                    while ((line = reader.readLine()) != null) {

                        System.out.println(line);

                    }

                }

            }

            posted on 2010-12-29 06:27 逛奔的蝸牛 閱讀(2608) 評(píng)論(4)  編輯 收藏 引用 所屬分類: Java

            評(píng)論

            # re: Java:讀取文件不亂碼 2011-06-19 17:17 秦旭
             @r X? 貄D 恤 X? @r ? 攥D ? 5 ?? 8? ? @r 愻 貄D ? 愻 @r 狊 ZB ?@? 貙 €[B  ?  場(chǎng)  $ 綁 h珼 ? 輷A l B 睂B  ? 悒D 綁 D 〥 L? 〥 綁 0?   @r 潤(rùn) z$B + ?  趔 4囇w?Au_Client   瞳很 0?  \? 堁w 瘕\? Z堁w? *堁w ?     ? ? 狋 ?詗0堁w*堁w爭(zhēng)襴  ? + ?  靰z 珟襴+  聶 ;"揬笩 333333333333333333333333333333搢"搢?搢?搢劵 I 埢 h? s鋻|?  "搢 8  ? 痿  4? 閽|(搢"搢?搢?搢橑 愾 `? $? ? h? 閽|(搢"搢?搢?搢  贈(zèng) vS 堳 銙襴貆z + ?  H倆 怎 !詗? + 磅 Z?R@?   @r X? 貄D 恤 X? @r ? 攥D ? 5 ?? 8? ? @r 愻 貄D ? 愻 @r 狊 ZB ?@? 貙 €[B  ?  場(chǎng)  $ 綁 h珼 ? 輷A l B 睂B  ? 悒D 綁 D 〥 L? 〥 綁 0?   @r 潤(rùn) z$B + ?  趔 4囇w?Au_Client_5?  瞳很 0?  \? 堁w 瘕\? Z堁w? *堁w ?     ? ? 狋 ?詗0堁w*堁w爭(zhēng)襴  ? + ?  靰z 珟襴+  聶 ;"揯鏢 -99933333333333333333333333333搢"搢?搢?搢劵 I 埢 h? s鋻|?  "搢 8  ? 痿  4? 閽|(搢"搢?搢?搢橑 愾 `? $? ? h? 閽|(搢"搢?搢?搢  贈(zèng) vS 堳 銙襴貆z + ?  H倆 怎 !詗? + 磅 Z?R@?  回復(fù)  更多評(píng)論
              

            # re: Java:讀取文件不亂碼 2012-05-15 01:35 Lory
            謝了  回復(fù)  更多評(píng)論
              

            # re: Java:讀取文件不亂碼 2012-05-15 01:35 Lory
            博主很謙虛,一定是個(gè)高手  回復(fù)  更多評(píng)論
              

            # re: Java:讀取文件不亂碼 2012-10-19 10:53
            可以解決亂碼問題(*^__^*)   回復(fù)  更多評(píng)論
              

            亚洲人成精品久久久久| 日韩精品久久久肉伦网站 | 国产麻豆精品久久一二三| 丁香五月综合久久激情| 亚洲精品无码久久久影院相关影片 | 高清免费久久午夜精品| 伊人伊成久久人综合网777| 色诱久久久久综合网ywww| 久久久久久人妻无码| 久久精品亚洲欧美日韩久久| 久久这里只有精品18| 伊人久久综合热线大杳蕉下载| 97久久精品无码一区二区天美| 久久嫩草影院免费看夜色| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产香蕉久久精品综合网| 久久综合综合久久狠狠狠97色88| 亚洲午夜无码久久久久| 久久最近最新中文字幕大全| 国内精品久久国产| 久久久久国产成人精品亚洲午夜| 欧美午夜精品久久久久免费视| 久久精品一区二区影院| 久久大香香蕉国产| 中文字幕久久精品无码| 亚洲人成无码www久久久| 大美女久久久久久j久久| 99久久这里只有精品| 久久综合给久久狠狠97色| 香蕉久久久久久狠狠色| 久久精品中文无码资源站| 人妻精品久久无码区| 久久亚洲sm情趣捆绑调教| 久久久久亚洲精品天堂久久久久久 | 91精品国产91热久久久久福利| 人妻精品久久久久中文字幕一冢本| 中文字幕无码久久精品青草| 免费一级欧美大片久久网| 久久婷婷五月综合成人D啪| 久久久久国产视频电影| 久久精品国产国产精品四凭|