為什么writer規(guī)定了utf-8但是寫出來還是亂碼呢?
代碼如下
??? public static void main(String[] args) throws IOException {
?? ??? ?BufferedReader br = new BufferedReader(new InputStreamReader(
?? ??? ??? ??? ?new FileInputStream("demo/nihao.dat"),"utf-8"));
?? ??? ?BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
?? ??? ??? ??? ?new FileOutputStream("demo/nihao2.dat"),"utf-8"));
?? ??? ?String line;
?? ??? ?while ((line = br.readLine()) != null) {
?? ??? ??? ?System.out.println(line);
?? ??? ??? ?bw.write(line);
?? ??? ??? ?bw.newLine();
?? ??? ??? ?bw.flush();
?? ??? ?}
?? ??? ?br.close();
?? ??? ?bw.close();
?? ?}
這樣在終端打出來的是對的,但是寫出來的文件nihao2.dat里面中文是亂碼。
2018-08-20
....發(fā)錯東西。。。
2018-08-20
2016-02-21
你先看下你的文件是不是以UTF-8的格式保存的,如果不是,改變一下,如果改變了之后,下一次運行之后,還出現(xiàn)同樣的問題,那么就看你項目是否是utf-8的,因為默認創(chuàng)建的文件,以項目的編碼格式是一樣的!
2016-02-15
終端是在JVM虛擬機的運行時環(huán)境運行的,可以自動識別,但是寫到文件里的內(nèi)容,編碼是根據(jù)及機器規(guī)定的編碼機制來讀取文件的,打開文件要使用特定的編碼機制打開方式,否則亂碼。