ページの先頭行へ戻る
Enterprise Application Platform V2.0.0 リリース情報

2.3.15 デフォルトの文字コードをUTF-8に変更

変更内容1

OutputStreamWriter、PrintStream、およびPrintWriterで引数にOutputStreamを取り、文字コードを指定しないコンストラクタにおいて、引数のOutputStreamがPrintStreamのインスタンスであった場合、PrintStreamに指定された文字コードが生成されるインスタンスでも使用されるようになります。

非互換1

V1.2以前

OutputStreamWriter、PrintStream、およびPrintWriterで引数にOutputStreamを取り、文字コードを指定しないコンストラクタにおいて、引数OutputStreamがPrintStreamのインスタンスである場合、PrintStreamに指定された文字コードが生成されるインスタンスで使用されません。

V2.0以降

OutputStreamWriter、PrintStream、およびPrintWriterで引数にOutputStreamを取り、文字コードを指定しないコンストラクタにおいて、引数OutputStreamがPrintStreamのインスタンスである場合、PrintStreamに指定された文字コードが生成されるインスタンスで使用されます。


変更内容2

Charset.defaultCharset()はfile.encodingシステムプロパティで明示的に指定しない限り、既定の文字コードとしてUTF-8を返却するようになりました。
また、System.outおよびSystem.errを除くすべての文字コードを使用するAPIで、Charset.defaultCharset()の文字コードを使用するようになりました。なお、System.outおよびSystem.errはConsole.charset()の文字コードを使用します。

非互換2

V1.2以前

Charset.defaultCharset()はプラットフォームに対応する文字コードを返却します。

V2.0以降

Charset.defaultCharset()はUTF-8を返却します。


変更内容3

file.encodingシステムプロパティにjava.baseモジュールに含まれない文字コードを指定すると、UTF-8が設定されるようになりました。

非互換3

V1.2以前

file.encodingシステムプロパティにjava.baseモジュールに含まれない文字コードを指定した場合、指定した文字コードがfile.encodingシステムプロパティに設定されます。

V2.0以降

file.encodingシステムプロパティにjava.baseモジュールに含まれない文字コードを指定した場合、UTF-8がfile.encodingシステムプロパティに設定されます。


対処方法

デフォルトの文字コードをUTF-8/COMPATに変更したい場合は、file.encodingシステムプロパティに使用したい文字コードを指定してください。
なお、file.encodingシステムプロパティにCOMPATを指定することでプラットフォームに対応する文字コードが設定されます。ただし、UTF-8/COMPAT以外は非サポートとなります。