我有一個UTF-8文件存儲在java jar文件中。我試圖用getResourceAsStream()方法讀取它,但函數返回的輸入流讀取器使用默認編碼,這是Windows下的ANSI編碼。如何使用Java方法Class.getResourceAsStream()從jar讀取UTF-8文本文件?
如何從jar中讀取UTF-8文本文件?
我有一個UTF-8文件存儲在java jar文件中。我試圖用getResourceAsStream()方法讀取它,但函數返回的輸入流讀取器使用默認編碼,這是Windows下的ANSI編碼。如何使用Java方法Class.getResourceAsStream()從jar讀取UTF-8文本文件?
如何從jar中讀取UTF-8文本文件?
圍繞InputStream
創建一個InputStreamReader
,指定UTF-8作爲編碼。
注:我不知道你所說的「由該函數返回的輸入流閱讀器使用的默認編碼」是什麼意思 - getResourceAsStream()
返回InputStream
,其內容二進制數據。這根本不是閱讀器(處理字符數據)。
native2ascii可能會幫助你。
它將非ascii字符轉換爲utf-8文件中的等效字符代碼。例如
;
native2ascii -encoding Cp1254 input_file.txt output_file.properties
享受...
謝謝,我被困在看的getResourceAsStream的返回類型,並認爲它返回一個InputStreamReader,而它返回一個InputStream。如果你厭倦編程,那就是你所得到的:-)。 – axilmar 2010-06-23 12:04:30