When reading with a Reader from an ASCII source, how does the Reader know it is ASCII/8-bit instead of Unicode/16-bit data?
Created Jun 27, 2000
Sandip Chitale Well the Reader really wraps an InputStream which
gives byte-level access to the data source. What the Reader
(e.g. InputStreamReader) does is to load a correct implementation of sun.io.ByteToCharConverter based on the "file.encoding" System property. This property is initialized by the JVM by default after consulting the
native operating system settings. You can override that by
setting the "file.encoding" property using the
Here is the link to supported encodings:
-Dfile.encoding=whatever
This affects all instances of the InputStreamReader though. The InputStreamReader has a constructor which you can use to pass the encoding on a per instance basis.
http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html
This list varies based on JDK version.