java I/O———字符編碼

1.常用字符編碼

在計算機的世界裏面,所有的文字都是通過編碼來描述的。對於編碼而言,如果沒有正確的解碼,那麼就會產生亂碼。

那麼要想避免亂碼問題,就必須清楚常見的編碼有哪些

  1. GBK、GB2312:表示的是國標編碼,GBK包含簡體中文和繁體中文,而GB2312只包含簡體中文。也就
    是說,這兩種編碼都是描述中文的編碼。
  2. UNICODE編碼:java提供的16進制編碼,可以描述世界上任意的文字信息,但是有個問題,如果現在
    所有的字母也都使用16進制編碼,那麼這個編碼太龐大了,會造成網絡傳輸的負擔。
  3. ISO8859-1:國際通用編碼,但是所有的編碼都需要進行轉換。
  4. UTF編碼:相當於結合了UNICODE、ISO8859-1,也就是說需要使用到16進制文字使用UNICODE,而
    如果只是字母就使用ISO8859-1,而常用的就是UTF-8編碼形式。

在以後的開發之中使用的編碼只有一個:UTF-8編碼

2.亂碼產生分析

清楚了常用編碼後,下面就可以觀察一下亂碼的產生。要想觀察出亂碼,就必須首先知道當前操作系統中默認支持的編碼是什麼(java默認編碼)

範例:讀取java運行屬性

System.getProperties().list(System.out);

如果說現在本地系統所用的編碼與程序所用編碼不同,那麼強制轉換就會出現亂碼。

範例:觀察亂碼產生

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
public class Test {
    public static void main(String[] args) throws UnsupportedEncodingException,
IOException {
        OutputStream out = new FileOutputStream(new
File("/Users/yuisama/Desktop/hello.txt")) ;
        out.write("比特歡迎您".getBytes("ISO8859-1")) ;
        out.close();
    }
}

亂碼產生的本質:編碼和解碼不統一產生的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章