簡體   English   中英

如何在Java中實現挪威字符文件?

[英]How to real norwegian characters file in Java?

以下是我用來讀取文件的代碼。

InputStreamReader iReader = new InputStreamReader(new FileInputStream("myrecords.txt"),"ISO-8859-1");
BufferedReader bReader = new BufferedReader(iReader);

public static List<String> bufferedReaderToStringList(BufferedReader bReader) throws IOException {
    List<String> stringList = new ArrayList<String>();
    String text;
    while ((text = bReader.readLine()) != null) {
        stringList.add(text);
    }
    bReader.close();
    return stringList;
}

當我從字符串中獲取數據並打印時,所有字符都會失真。 在“我的膩子”屏幕上,甚至我將其保存在數據庫中時,它仍然失真。 任何人都可以幫助解決問題

有人請指導我做錯了什么嗎?

Dolvenh�yda is distorted one. It is Norwegian character. 
Dolvenhøyda is correct one. 

您是如何將文本打印到控制台的? 可能是因為控制台實際上是在utf-8假定字符iso-...

“轉換”打印的字符串可能會解決以下問題: Charset.forName("UTF-8").encode(myString)

InputStreamReader將InputStream(二進制數據)及其編碼(此處為ISO-8859-1)包裝在一起,以讀取文本,該文本在Java內部被保存為Unicode。 編碼必須正確。

InputStreamReader iReader = new InputStreamReader(
        new FileInputStream("myrecords.xml"), "ISO-8859-1");

BufferedReader只是處理(假定是正確的)文本。

BufferedReader bReader = new BufferedReader(iReader);

因此,只有InputStreamReader可能是錯誤的。 您可以檢查XML文件。

默認情況下,UTF-8中的XML是<?xml ... encoding=... ?>的編碼所覆蓋。 在某些情況下,這可能是一個謊言,但是單擊XML可以輕松顯示其正確性。

現在,給定正確的編碼,Reader,String等應該是正確的。

但是,輸出到控制台(System.out)會使用操作系統編碼,這可能會破壞給定的文本。

再次輸出到文件,將需要指定文件內容的所需編碼。 另外,還需要保持<?xml encoding=... ?>正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM