Hitachi

Cosminexus V11 アプリケーションサーバ リファレンス 定義編(サーバ定義)


sun.nio.cs.map

〈このページの構成〉

形式

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

説明

エンコーディング名shift_jis, csshiftjis,ms_kanji,x-sjisをMS932と同等とするかどうかを指定します。

文字エンコーディングの別名であるshift_jis,csshiftjis,ms_kanji,x-sjisは,JDK1.4.0ではMS932の別名でしたが,JDK1.4.2以降ではSJISの別名に変更になりました。今までMS932の別名としてshift_jis,csshiftjis,ms_kanji,x-sjisを使用していたプログラムをそのままこのバージョンで実行すると文字化けすることがあります。

shift_jis,csshiftjis,ms_kanji,x-sjisを以前のバージョンと同じく,MS932の別名として実行させるためには,sun.nio.cs.mapプロパティにWindows-31J/Shift_JISを指定してください。

(例)

import java.io.*;
class encode_Shift_JIS {
  public static void main( String arg[] ) {
    try {
      String string_data = "−①〜";
      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();
    }
  }
}

JDK1.4.0では,shift_jisはMS932の別名であったため,上記のプログラムは文字化けしませんでしたが,JDK1.4.2のバージョンで実行すると次のように文字化けします。

      java encode_Shift_JIS
      ??@?

文字化けを回避するためには,sun.nio.cs.mapプロパティにWindows-31J/Shift_JISを指定して実行してください。

指定例

J2EEサーバで設定する場合はusrconf.cfgファイルに次の指定をしてください。

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

J2EEサーバなど各環境でのusrconf.cfgファイルの記載方法の詳細については「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。