Java字符编码介绍
生活随笔
收集整理的這篇文章主要介紹了
Java字符编码介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在計算機中,任何的文字都是以指定的編碼方式存在的,在 Java 程序的開發中最常見的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 編碼。
Java 中常見編碼說明如下:
ISO8859-1:屬于單字節編碼,最多只能表示 0~255 的字符范圍。GBK/GB2312:中文的國標編碼,用來表示漢字,屬于雙字節編碼。GBK 可以表示簡體中文和繁體中文,而 GB2312 只能表示簡體中文。GBK 兼容 GB2312。Unicode:是一種編碼規范,是為解決全球字符通用編碼而設計的。UTF-8 和 UTF-16 是這種規范的一種實現,此編碼不兼容 ISO8859-1 編碼。Java 內部采用此編碼。UTF:UTF 編碼兼容了 ISO8859-1 編碼,同時也可以用來表示所有的語言字符,不過 UTF 編碼是不定長編碼,每一個字符的長度為 1~6 個字節不等。一般在中文網頁中使用此編碼,可以節省空間。在程序中如果處理不好字符編碼,就有可能出現亂碼問題。例如現在本機的默認編碼是 GBK,但在程序中使用了 ISO8859-1 編碼,則就會出現字符的亂碼問題。就像兩個人交談,一個人說中文,另外一個人說英語,語言不同就無法溝通。為了避免產生亂碼,程序編碼應與本地的默認編碼保持一致。
本地的默認編碼可以使用 System 類查看。Java 中 System 類可以取得與系統有關的信息,所以直接使用此類可以找到系統的默認編碼。方法如下所示:
public static Properties getProperty()查看 JVM 的默認編碼,代碼如下:
public static void main(String[] args) {// 獲取當前系統編碼System.out.println("系統默認編碼:" + System.getProperty("file.encoding")); }運行結果如下:
系統默認編碼:GBK可以看出,現在操作系統的默認編碼是 GBK。
示例亂碼的產生?,F在本地的默認編碼是 GBK,下面通過 ISO8859-1 編碼對文字進行編碼轉換。如果要實現編碼的轉換可以使用 String 類中的 getBytes(String charset) 方法,此方法可以設置指定的編碼,該方法的格式如下:
public byte[] getBytes(String charset); 示例代碼如下: public class Test {public static void main(String[] args) throws Exception {File f = new File("D:" + File.separator + "test.txt");// 實例化輸出流OutputStream out = new FileOutputStream(f);// 指定ISO8859-1編碼byte b[] = "百度搜索引擎!".getBytes("ISO8859-1");// 保存轉碼之后的數據out.write(b);// 關閉輸出流out.close();} }運行結果如下:
因為編碼不一致,所以在保存時出現了亂碼。在 Java 的開發中,亂碼是一個比較常見的問題,亂碼的產生就有一個原因,即輸出內容的編碼與接收內容的編碼不一致。
總結
以上是生活随笔為你收集整理的Java字符编码介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java访问控制修饰符详解
- 下一篇: C++ 判断元音/辅音