Hitachi

uCosminexus Application Server Definition Reference Guide


sun.nio.cs.map

Organization of this page

Format

sun.nio.cs.map=Windows-31J/Shift_JIS

Description

This property specifies whether to equate the encoding names shift_jis, csshiftjis, ms_kanji, and x-sjis with MS932.

In JDK 1.4.0, the character encoding aliases shift_jis, csshiftjis, ms_kanji, and x-sjis were aliases of MS932. However, from JDK 1.4.2 onwards, they were changed to aliases of SJIS. If you have a program in which shift_jis, csshiftjis, ms_kanji, or x-sjis is used as an alias of MS932 and run it with JDK 1.4.2 or later, text might be garbled.

To handle shift_jis, csshiftjis, ms_kanji, and x-sjis as aliases of MS932 in the same way as with JDK 1.4.0, specify Windows-31J/Shift_JIS for the sun.nio.cs.map property.

Example:

import java.io.*;
class encode_Shift_JIS {
  public static void main( String arg[] ) {
    try {
      String string_data = "[Figure]";
      byte[] data = string_data.getBytes();
      InputStreamReader isr = 
        new InputStreamReader(
                     new ByteArrayInputStream( data ), "shift_jis");
      char[] read_data = new char[6];
      isr.read( read_data, 0, 6 );
      System.out.println(new String(read_data));
    }
    catch ( Exception e ) {
      e.printStackTrace();
    }
  }
}

When the preceding program is executed with JDK 1.4.0, text is not garbled because shift_jis is handled as an alias of MS932. However, if the program is executed with JDK 1.4.2, text is garbled as follows:

      java encode_Shift_JIS
      ??@?

To avoid such garbled text, specify Windows-31J/Shift_JIS for the sun.nio.cs.map property when executing the program.

Examples of specification

If you set this property on a J2EE server, specify the following entry in the usrconf.cfg file:

add.jvm.arg=-Dsun.nio.cs.map=Windows-31J/Shift_JIS

For details about how to specify settings in the usrconf.cfg file in a specific environment such as a J2EE server, see 2.2.2 usrconf.cfg (Option definition file for J2EE servers).