I¹m working on a product that uses Commons IO via Jackrabbit Oak. In the
process of testing the launch of such product on Japanese Windows 2012
Server R2, I came across the following exception:
"(java.io.UnsupportedEncodingException: Encoding windows-31j is not
supported yet (feel free to submit a patch))"
windows-31j is the IANA name for Windows code page 932 (Japanese), and
is returned by Charset.defaultCharset(), used in org.apache.commons.io.input.ReversedLinesFileReader .
This issue can be resolved by adding a check for
'windows-31j' to ReversedLinesFileReader.
The attached patch includes such addition, as well as those needed to support Chinese Simplified, Chinese Traditional and Korean.
A newline byte can never appear as part of a multi-byte character in any
of those encodings.
- Japanese: http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
- Simplified Chinese: http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT
- Korean: http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT
- Traditional Chinese: http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT