字符編碼
在實際工作中最常見的4種編碼如下:
GBK、GB2312:中文的國標編碼,其中GBK包含簡體中文與繁體中文兩種,而GB2312只包含簡體中文;
ISO8859-1:是國際編碼,可以描述任何文字信息(中文需要轉碼);
UNICODE:是十六進制編碼,但是在傳遞字符信息時會造成傳輸的數據較大;
UTF編碼(Unicode Transformation Format):是一種UNICODE的可變長度編碼,常見的編碼爲UTF-8編碼。
例:取得當前系統中的環境屬性中的文件編碼
package Project.Study.CharacterEncoding;
public class Test1 {
public static void main(String[]args){
System.getProperties().list(System.out);//列出全部系統屬性
}
}
//結果:
//file.encoding=UTF-8
//(其他無關輸出結果省略)
由上程序我們可以發現,默認的編碼是UTF-8,所以當程序向文件中輸出信息時,文件就會使用UTF-8編碼,而文件的內容也應該是UTF-8編碼,此處如果強行修改爲其他編碼,就會出現亂碼。
例:程序出現亂碼
package Project.Study.CharacterEncoding;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class Test2 {
public static void main(String[]args)throws Exception{
File file=new File("D:"+File.separator+"Test"+File.separator+"test.txt");
OutputStream outputStream=new FileOutputStream(file);
outputStream.write("輸出結果:Hello World".getBytes("ISO8859-1"));//強制改變文字的編碼,此操作可以通過String類的getBytes()方法實現
outputStream.close();
}
}
結果: