目次||

文字エンコーディングの重要性

バイト印刷データのMIMEタイプにエンコーディングを示す文字セット・パラメータが含まれていない場合、Java印刷サービスはUS-ASCIIの文字セットが指定されていると見なします。この動作は、常に、配下のオペレーティング・システム上に設定されているユーザーのロケールのデフォルトのエンコーディング(US-ASCIIとは異なる可能性がある)と見なすJavaランタイムの動作とは異なります。

Java仮想マシン*のどのインスタンスにも、通常は基盤となるオペレーティング・システムで使用されるロケールと文字セットに依存する、仮想マシンの起動中に決定されるデフォルトの文字エンコーディングが割り当てられます。分散環境の2つのJVMが、同じデフォルトのエンコーディングを共有しないことがあります。つまり、ホスト・プラットフォームがエンコードしたテキスト・データを、クライアントがJava印刷サービスのインスタンスにストリーム配信するときは、デフォルトのエンコーディングに依存せず、文字セットを明示的に宣言する必要があります。

これらの理由により、テキスト・データをストリーム配信するアプリケーションは、常にMIMEタイプで文字セットを指定するべきです。MIMEタイプを指定するには、アプリケーションはホスト・プラットフォームのエンコーディングを判定する必要があります。これは、DocFlavor.hostEncodingメソッドを呼び出すことによって実行されます。このメソッドから返されたMIMEタイプは、必ず現在のJVMによって認識されます。

Javaプラットフォーム上でサポートされる文字エンコーディングの詳細は、「文字エンコーディング」を参照してください。


*このWebサイトで使用されている用語「Java仮想マシン」または「JVM」は、Javaプラットフォーム用の仮想マシンを表します。

目次||

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.