8.4.5 データ・エンコーディング・ディレクティブ
異なるプラットフォーム/システム間ではUTF-8エンコーディングを使用することを強くお勧めします。この方法では、コード・ページの変換問題が起こらずにデータが確実に届きます。
UTF-8バイト・エンコーディングは、ソケット接続でテキスト・データを送信する場合にのみ使用されます。
UTF-8エンコーディングは、すべての文字を表すため、システム間で使用される主要バイト・エンコーディングになります。
UTF-8エンコード・データがサービスに届くと、Unicodeに変換されます。LANSAファンクションとIBM i 上のJSMとの間でデータが転送される場合、EBCDICからUnicodeへの変換が行われます(逆の場合も同様です)。
PC (ローカル) <--- Cp1252 ---> ユーザー・エージェント(Unicode) <------> UTF-8 <-----> JSM (Unicode) <----- CCSID 37 ---> LANSAファンクション
XMLソースの内容は、自動検出方法を使用してユーザー・エージェントで読み込まれるため、エンコーディングの選択は必要ありません。
省略値では、すべてのテキストとXML内容は、ファイル拡張子/MIMEタイプのエントリーで指定されたcharset値を使用してバイト・ストリームに変換されます。XML宣言エンコーディングは、選択したエンコーディングに合うように修正されます。
詳細については、「IANAエンコーディング」を参照してください。
データ・ソース・テキストのエンコーディング(送信)
キーワード |
説明 |
---|---|
local.read.text.encoding |
ユーザー・エージェントがローカル・テキスト・ファイルを読み込み、Unicodeデータ・ソース文字列を作成する場合に使用されます。 以下のルールにより、エンコーディングが決まります。 local.read.text.encodingエントリーがある場合、この値を使用してテキスト・バイトをUnicodeに変換します。 local.read.text.encodingエントリーがない場合、JVMの省略値・エンコーディングを使用します。 |
remote.write.text.encoding |
ユーザー・エージェントがUnicodeデータ・ソース文字列をバイト・ストリームに変換して、リモート・ホストに送信する場合に使用されます。 以下のルールにより、エンコーディングが決まります。 ファイル拡張子に関連付けられている内容タイプに存在するcharset値を使用します。 charsetがない場合、remote.write.text.encodingエントリーを使用します。 remote.write.text.encodingエントリーがない場合、JVMの省略値・エンコーディングを使用します。 |
データ応答テキストのエンコーディング(受信)
キーワード |
説明 |
---|---|
remote.read.text.encoding |
ユーザー・エージェントが、受信したHTTPバイト内容をUnicodeデータ応答文字列に変換する場合に使用されます。 以下のルールにより、エンコーディングが決まります。 HTTP応答プロトコルの内容タイプに存在するcharset値を使用します。 charsetがない場合、remote.read.text.encodingエントリーを使用します。 remote.read.text.encodingエントリーがない場合、JVMの省略値・エンコーディングを使用します。 |
local.write.text.encoding |
ユーザー・エージェントが、Unicodeデータ応答文字列を、必要なローカル・エンコーディングに変換する場合に使用されます。 以下のルールにより、エンコーディングが決まります。 local.write.text.encodingエントリーがある場合、これを使用してUnicodeをバイトに変換します。 local.write.text.encodingエントリーがない場合、JVMの省略値・エンコーディングを使用します。 |
データ応答XMLのエンコーディング(受信)
キーワード |
説明 |
---|---|
remote.read.xml.encoding |
ユーザー・エージェントが、受信したXMLバイト内容をUnicodeデータ応答文字列に変換する場合に使用されます。 以下のルールにより、エンコーディングが決まります。 remote.read.xml.encodingエントリーがある場合、これを使用してバイトをUnicodeに変換します。 remote.read.text.encodingエントリーがない場合、省略値のメソッドは*charsetになります。 値が*charsetの場合、charset値を使用します。charsetを使用できない場合、自動検出を使用します。 値が*autodetectの場合、エンコーディングを自動検出します。 |
local.write.xml.encoding |
ユーザー・エージェントが、Unicode XMLデータ応答文字列を、必要なローカル・エンコーディングに変換する場合に使用されます。 以下のルールにより、エンコーディングが決まります。 local.write.xml.encodingエントリーがある場合、これを使用してUnicodeをバイトに変換します。 local.write.text.encodingエントリーがない場合、省略値のメソッドは*charsetになります。 値が*charsetの場合、charset値を使用します。charsetを使用できない場合、JVMの省略値・エンコーディングを使用します。 値が*defaultの場合、JVMの省略値・エンコーディングを使用します。 値が*textの場合、local.write.text.encodingメソッドを使用します。 |