理解檔案的編碼,理解檔案編碼

來源:互聯網
上載者:User

理解檔案的編碼,理解檔案編碼

 

  • UTF-16BE:漢字占 2 個位元組, 字母占 2 個位元組。
  • UTF-8:漢字占 3 個位元組, 字母占 1 個位元組。
  • GBK:漢字占 2 個位元組,字母占 1 一個位元組。Java項目預設編碼為GBK。
  • ANSI:中文系統下ansi編碼代表GBK編碼。

 

 

  Java是雙位元組編碼,一個字元佔2個位元組。所以Java裡的一個字元可以放一個漢字,預設的Java項目編碼為GBK,一個漢字2個位元組,正好可以放進去,不會出現亂碼。

 

  當你的 位元組序列 為某種編碼時,這個時候如果想把位元組序列編變成字串,也要用到這種編碼方式,否則會出現亂碼。

  在程式中,將 位元組序列 變成 字串,如果不給出位元組序列的編碼方式,則會採用系統預設的編碼方式GBK,例如,bytes是一個UTF-8的位元組序列數組,如果要將其轉換成這個位元組序列所表示的字串,則必須給出這種編碼方式:

    String str = new String(bytes,”utf-8”);

  如果不給出則會按照GBK編碼方式轉換成字串,就會出現亂碼。

 

  文字檔其實是一種位元組序列。

  在文字檔可以查看任意編碼的文字資訊而不亂碼。

  在中文機器上直接建立文字檔,那麼文字檔預設以ansi編碼(也就是GBK)來儲存文字資訊。

 

  在Eclipse裡面,項目設定的什麼編碼形式,它就只認識什麼編碼。如果從一個utf-8的項目裡拷貝一個文字檔到GBK的項目裡,再開啟則會出現亂碼。但是如果從utf-8的文字檔裡直接拷貝文字內容到GBK項目的文字檔裡,不會出現亂碼,系統會自動地做編碼轉換。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.