我有一个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