com.caucho.vfs.i18n
Class WindowsHackReader

java.lang.Object
  extended by java.io.Reader
      extended by com.caucho.vfs.i18n.EncodingReader
          extended by com.caucho.vfs.i18n.WindowsHackReader
All Implemented Interfaces:
java.io.Closeable, java.lang.Readable

public class WindowsHackReader
extends EncodingReader

Implements an encoding reader to convert the stupid windows "smart" quotes into ISO-8859-1 (Latin-1) characters.

The windows "smart" quotes actually do map into unicode characters. If that's what you want, use the window-1521 encoding instead. windows-hack converts to the closest latin-1 equivalent.

The three exceptions are the elipses '...', the trademark, and the per-mille characters. Those are translated into their unicode equivalents because there isn't a useful latin-1 equivalent.


Field Summary
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
WindowsHackReader()
          Null-arg constructor for instantiation by com.caucho.vfs.Encoding only.
 
Method Summary
 java.io.Reader create(java.io.InputStream is, java.lang.String javaEncoding)
          Create a windows-hack reader based on the readStream.
 int read()
          Reads into a character buffer using the correct encoding.
 int read(char[] cbuf, int off, int len)
          Reads into a character buffer using the correct encoding.
 
Methods inherited from class com.caucho.vfs.i18n.EncodingReader
close, create, getJavaEncoding, setJavaEncoding
 
Methods inherited from class java.io.Reader
mark, markSupported, read, read, ready, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsHackReader

public WindowsHackReader()
Null-arg constructor for instantiation by com.caucho.vfs.Encoding only.

Method Detail

create

public java.io.Reader create(java.io.InputStream is,
                             java.lang.String javaEncoding)
Create a windows-hack reader based on the readStream.

Specified by:
create in class EncodingReader
Parameters:
is - the input stream providing the bytes.
javaEncoding - the JDK name for the encoding.
Returns:
the windows-hack reader.

read

public int read()
         throws java.io.IOException
Reads into a character buffer using the correct encoding.

Specified by:
read in class EncodingReader
Returns:
the next character or -1 on end of file.
Throws:
java.io.IOException

read

public int read(char[] cbuf,
                int off,
                int len)
         throws java.io.IOException
Reads into a character buffer using the correct encoding.

Overrides:
read in class EncodingReader
Parameters:
cbuf - character buffer receiving the data.
off - starting offset into the buffer.
len - number of characters to read.
Returns:
the number of characters read or -1 on end of file.
Throws:
java.io.IOException