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?

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

-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.

Here is the link to supported encodings:

http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html

This list varies based on JDK version.

0 Comments  (click to add your comment)
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

About | Sitemap | Contact