バイト印刷データのMIMEタイプにエンコーディングを示す文字セット・パラメータが含まれていない場合、Java印刷サービスはUS-ASCIIの文字セットが指定されていると見なします。 この動作は、基礎となるオペレーティング・システム上のユーザーのロケールのデフォルトのエンコーディングを常に想定しているJavaランタイムの動作とは異なります。これは、US-ASCIIとは異なる場合があります。
Java仮想マシン*のどのインスタンスにも、通常は基盤となるオペレーティング・システムで使用されるロケールと文字セットに依存する、仮想マシンの起動中に決定されるデフォルトの文字エンコーディングが割り当てられます。 分散環境では、2つのJVMが同じデフォルト・エンコーディングを共有しない場合があります。 つまり、ホスト・プラットフォームがエンコードしたテキスト・データを、クライアントがJava印刷サービスのインスタンスにストリーム配信するときは、デフォルトのエンコーディングに依存せず、文字セットを明示的に宣言する必要があります。
これらの理由により、テキスト・データをストリーム配信するアプリケーションは、常にMIMEタイプで文字セットを指定するべきです。 MIMEタイプを指定するには、DocFlavor.hostEncoding
メソッドをコールして、ホスト・プラットフォームのエンコーディングを決定する必要があります。 このメソッドから返されたMIMEタイプは、必ず現在のJVMによって認識されます。
Javaプラットフォーム上でサポートされる文字エンコーディングの詳細は、「文字エンコーディング」を参照してください。