Solarisの日本語EUC環境では、JDK/JREのバージョンごとに、デフォルトの文字コンバーターが異なります。
JDK/JREのバージョン | デフォルトで使用される文字コンバーター | 対応する文字セット名(正準名) |
---|---|---|
1.3.0 | EUC_JP | EUC_JP |
1.3.1_08 | EUC_JP_Solaris | EUC_JP_Solaris |
1.4.2_08 | EUC_JP_Open | x-eucJP-Open |
対処方法
異なるバージョンのJDK/JREの間で移行を行う場合は、Javaプログラムで文字列操作やI/O操作を行う部分において、「Solarisにおけるデフォルト文字コンバーターの相違」の「対応する文字セット名(正準名)」にある文字セット名などを明示するように修正する必要がある場合があります。
例
修正例を、次に示します。
new String(byte[])→new String(byte[], String)
new FileReader(File)→new InputStreamReader(FileInputStream, String)
たとえば、JDK/JRE 1.3.0からJDK/JRE 1.5.0_10に移行する場合は、JDK/JRE 1.3.0の文字セット名(正準名)である「EUC_JP」を指定します。
なお、Javaプログラムの修正以外に、デフォルトの文字エンコーディングを変更する手段はありません。