8.4.5 データ・エンコーディング・ディレクティブ

LANSA Integrator

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メソッドを使用します。