0

I have a UTF-8 file stored inside a java jar file. I am trying to read it using the method getResourceAsStream(), but the input stream reader that is returned by the function uses the default encoding, which is the ANSI one under Windows.

How can I read a UTF-8 text file from inside a jar?

axilmar
  • 836
  • 1
  • 13
  • 17

2 Answers2

10

Create an InputStreamReader around the InputStream, specifying UTF-8 as the encoding.

Note: I'm not sure what you mean by "the input stream reader that is returned by the function uses the default encoding" - getResourceAsStream() returns an InputStream, which reads binary data. That's not a reader at all (dealing with character data).

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • Thanks, I was stuck looking at the return type of getResourceAsStream and thinking that it returns an InputStreamReader, whereas it returns an InputStream. That's what you get if you program while tired :-). – axilmar Jun 23 '10 at 12:04
0

native2ascii may help you.
it converts non-ascii characters to equivalent character codes inside your utf-8 file.
for example;
native2ascii -encoding Cp1254 input_file.txt output_file.properties
enjoy...

saban
  • 120
  • 2
  • 9