1. 程式人生 > >String構造方法帶字符編碼集的作用

String構造方法帶字符編碼集的作用

java charset

java使用的有unicode默認字符編碼集,所以直接new String("測試".getBytes(),charset)是沒有意義的。

在讀取外部數據的時候,才是使用字符編碼集的意義。

InputStream is;

byte[] b = new byte[is.available()];

is.read(b);

String s = new String(b,charset);

如果外部文件不是默認的字符編碼集,加上字符編碼集就可以讀到正確的文件了。

如讀取一個txt文件的內容

BufferedReader fReader = new BufferedReader(new FileReader(fileName));

fReader.readLine();

如果字符編碼不對讀取到的可能就是亂碼

new String(fReader.readLine().getBytes(),charset)

這樣就不是亂碼了


或者可以使用如下這種方式

BufferedReader fReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),charset));

fReader.readLine();

這樣就能讀取到非亂碼的字符了


同理輸出的時候,如果客戶端的默認編碼集不一直,輸出的時候也要加上設置的字符編碼


寫到後面好像發現和標題相關不大啊,意思一樣的。。。


String構造方法帶字符編碼集的作用