ナビゲーションをスキップ

マルチバイト環境での使用にあたって

  前 次 前/次ボタンと目次ボタンとの区切り線 目次

WebLogic Server の国際化

国際化の概要

WebLogic Server の国際化 (I18n) の基本的な特徴は以下のようになります。

WebLogic Server を使ってマルチバイトの文字情報を扱う分散システムを構築する際には、Java および J2EE 特有のエンコーディングの指定方法を十分に理解する必要があります。それに加えて、OS、インターネット、バックエンド システムなど、WebLogic Server と接続するシステムのエンコーディングの扱いを十分に検討した上で、エンコーディング コンバージョンを正しくコントロールする必要があります。

それぞれの特徴を簡単に説明します。

Unicode の使用

WebLogic Server は 100% pure Java アプリケーション サーバ プログラムです。サーバ内部のエンコーディングには Unicode を使用しています。

WebLogic Server は Unicode で扱える文字ならばどんな言語の文字でも同時に扱うことが可能です。

エンコーディングのコンバージョン

WebLogic Server の外部と文字データのやり取りをする際にはエンコーディングのコンバージョンが発生します。

通常の OS では、Java の内部コードである Unicode で動作する環境はほとんどありません。ネイティブ エンコーディングと呼ばれる、個別のプラットフォームで個別に定義されたエンコーディングで動作します。例えば Windows であれば言語に応じたコード ページ、UNIX では LANG 環境変数により指定されたロケールに応じたエンコーディング、データベースであればデータベースを作成する際に指定したキャラクタ セットやクライアントのキャラクタ セットなどがネイティブ エンコーディングに相当します。

このため、WebLogic Server で文字の入出力をする際に、ネイティブ エンコーディングの文字と Unicode との間でエンコーディングを相互にコンバージョン (キャラクタ セットの変換) する必要があります。このエンコーディングのコンバージョンは OS や外部リソースとのキャラクタ データの入出力の際に常に発生します。

注意: Java クラスをシリアライズしたストリームに含まれる文字は Unicode のまま (UTF-8 でエンコード) されてクラスの内部情報として保持されているため、コード コンバージョンは考慮する必要ありません。例えば EJB や RMI では通常エンコーディングについて考慮する必要はありません。

また、エンコーディングのコンバージョンは文字 1 つずつに対して個別に全て行わなければならないため比較的大きな CPU リソースを必要とします。アプリケーション設計の際には、コード コンバージョンをなるべく減らす工夫がよりよいパフォーマンスにつながります。

サーバ本体とアプリケーション コンポーネントおよび WebLogic Server 上のリソースのエンコーディング コンバージョンの分離

WebLogic Server はサーバ本体のエンコーディング コンバージョンと、アプリケーション コンポーネントや WebLogic Server 上のリソースのエンコーディング コンバージョンを分離しています。

WebLogic Server はどんな言語のコンテンツをサービスしていようとも、サーバ本体のログのエンコーディングや、管理コンソールのエンコーディングはアプリケーション コンポーネントとは関係なく、サーバ本体の JavaVM のデフォルト エンコーディングやブラウザの言語設定により動作します。

また、あるアプリケーション コンポーネントを WebLogic Server にデプロイすると、どんなロケール (言語) の環境で動作する WebLogic Server であっても、全く同じ動作をするようにコンフィグレーションすることが可能です。

JDBC コネクション プールなど、WebLogic Server コンテナ上でコンフィグレーションされるリソースに対してもリソース毎に個別にエンコーディング コンバージョンのための設定をすることができます。

WebLogic Server 本体のエンコーディング コンバージョンとして以下のものがあります。

アプリケーション パッケージ個別のコンバージョンとして以下のものがあります。

WebLogic Server 上のリソースとしては以下のものがあります。

そこで、WebLogic Server 上でエンコーディングを指定する場合には、その指定は上記 3 つのカテゴリのどこに対して指定しているのかを明確にする必要があります。その上で、WebLogic Server 内に正しい Character オブジェクトが作れるか、もしくは WebLogic Server 内の Character オブジェクトが希望のエンコーディングの文字に変換されて出力されるか、常に意識する必要があります。

このように、WebLogic Server 上でマルチバイト文字を扱う場合には、エンコーディング コンバージョンの働きを一通り理解し、必要に応じて設定を行う必要があります。エンコーディング コンバージョンの設定をしなければアプリケーションは正しくマルチバイト文字を扱えない場合があります。

いずれの場合においてもエンコーディングを指定しない場合は何らかのデフォルトのエンコーディングが使用されます。デフォルトのエンコーディングはそれぞれの仕様や、環境により異なる場合があります。

デフォルトのエンコーディングの例

WebLogic Server の動作に関係するデフォルトのエンコーディングとして一例をあげると次のような種類があります。

例:

このように技術仕様によってデフォルトのエンコーディングが異なるため、エンコーディングに関する指定を全くしない場合は、WebLogic Server ではマルチバイトを正しく扱うことができません。次章以降の個別のエンコーディングの指定方法をよくご理解いただいた上でエンコーディングのコンバージョンをコントロールしてください。

エンコーディングという言葉は Java で使われているキャラクタ セットのことですが、この言葉は場合によっていくつかの異なる呼び名があり、それぞれ若干定義が異なるので注意が必要です。

Java でのエンコーディングやインターネット上でキャラクタ セットと呼ばれているものは、特定の言語の文字をコンピュータ上で扱えるように、その文字のまとまりをコンピュータのコードに割り当てた定義のことです。

Java はこれらの違いを入出力部分で吸収し、内部では常に Unicode で扱います。このためエンコーディングの定義さえあればどんなキャラクタ セットでも扱うことができる優れた特徴をもっています。つまり、Java はさまざまなシステム間に存在するエンコーディングの違いを全て吸収できる可能性を持った言語であると言えます。しかしながら、現状では細かなエンコーディングの違い全てに対応したエンコーディング変換テーブルは存在しません。また既に存在するエンコーディング テーブルにも Unicode との整合性からいくつか制限があります。

Java Web アプリケーション サーバで特に重要なのは Java のエンコーディング名と、Internet や XML で使用される IANA で定義された MIME キャラクタ セットの違いです。WebLogic Server ではこの違いを吸収するため、Java エンコーディング名と IANA のキャラクタ セットとの名前のマッピング テーブル (WebLogic Server で既に定義している MIME-Java エンコーディング マップを参照) を持っています。これにより、例えば JSP 上では Shift_JIS として定義したファイルを Java の SJIS として扱うことができます。 また、Web コンポーネントに対しては、この WebLogic Server システムのマッピング テーブルを変更して、例えば 'Shift_JIS' という IANA キャラクタ セット名を 'cp943' という Java エンコーディングとして扱うことも可能です (HTTP レスポンスに関する Java エンコーディングと IANA キャラクタ セットのマッピングの変更 (J2EE非互換) を参照)。

WebLogic Server 組み込みの XML パーサである xerces では独自に IANA と Java のマッピング テーブルを持っています。これはユーザ側でカスタマイズすることはできません。例えば IANA の charset 名の Shift_JIS は Java のエンコーディング名の SJIS にマップされています。

WebLogic Server では基本的に Java のエンコーディング名でエンコーディングを設定するようになっています。また、J2EE、Internet、XML では IANA キャラクタ セット名を使用します。必要に応じてこのマッピングの変更を行ってください。


WebLogic Server コンテナのデフォルトのエンコーディングの指定方法

WebLogic Server は様々な有効範囲でエンコーディングを指定することができます。例えば JSP では JSP2.0 仕様に準拠したページ毎のエンコーディングの指定を行う page タグがあります。このように特定の有効範囲毎に指定するエンコーディングは、WebLogic Server が動作する JavaVM のデフォルトのエンコーディング (JavaVM の内部実装が、動作するプラットフォームのロケール環境から決定するエンコーディング) とは関係がありません。JavaVM が英語のロケールであっても、マルチバイト文字を含んだ JSP ファイルを使ったサービスをすることには何ら問題ありません。しかしながら以下の項目については JavaVM のデフォルトのエンコーディングに依存して文字列を取り扱います。

これらは JavaVM のデフォルトのエンコーディングで動作します。プラットフォームのロケールを切り替えることで WebLogic Server のログメッセージの言語、エンコーディングを切り替えたい場合は以下のように指定します。なお、JavaVM のデフォルトのエンコーディングは VM の起動後に動的に切り替えることはできません。以下の設定を確認した後で WebLogic Server を再起動してください。

Windows の場合

[コントロール パネル|地域 (または地域のオプション)] から [英語 (U.S.)] または [日本語]、[韓国語]、[中国語 (中国)]、[中国語 (台湾)] などを選択します。これにより、サーバは CP1252 または MS932、MS949、GBK、MS950 などをデフォルトのエンコーディングとして動作します。

UNIX の場合

LANG 環境変数にプラットフォームでサポートするロケールを指定します。

サーバのエンコーディングと LANG 環境変数の例として、一部を以下の表にまとめます。その他は、お使いのプラットフォームのマニュアル等でご確認ください。

プラットフォーム エンコーディング LANG 環境変数
Solaris EUC-JP、SJIS ja または ja_JP.eucJP、ja_JP.PCK
Solaris EUC-KR ko または ko_KR
Solaris GB2312、GBK zh_CN または zh_CN.GBK
Solaris GB18030 zh_CN.GB18030
Solaris Big5 zh_TW.BIG5
HP EUCJIS、SJIS ja_JP.eucJP、ja_JP.SJIS
HP EUC-KR ko.eucKR または ko_KR
HP GB2312 zh_CN.hp15CN
HP GB18030 zh_CN.gb18030
HP Big5 zh_TW.big5

たとえば、Solaris で EUC-JP を指定する場合は次のようになります。


    LANG=ja

管理サーバ、管理対象サーバの構成上の注意

ドメイン内の全ての WebLogic Server のエンコーディングは同じものを使用します。

WebLogic Server では、ドメイン内の全てのサーバは同一エンコーディングに設定する必要があります。

例えば、ドメイン内に Windows プラットフォームが存在する場合、ドメインを MS932 エンコーディングで統一します。エンコーディングの異なるサーバがあった場合、そのサーバのログは正しく表示する事ができません。

クラスタ構成上の注意

クラスタ内の全ての WebLogic Server のエンコーディングは同じものを使用します。

WebLogic Server では、クラスタ内の全てのサーバは同一エンコーディングに設定する必要があります。

例えば、クラスタ内に Windows プラットフォームが存在する場合、ドメインを MS932 エンコーディングで統一します。エンコーディングの異なるサーバがあった場合、そのサーバのログは正しく表示する事ができません。

config.xml ファイルのエンコーディング

config.xml ファイルは UTF-8 で入出力します。テキスト エディタなどで直接 config.xml ファイルを編集する場合は、UTF-8 で読込み/保存してください。

JDBC コネクション

JDBC コネクション プールを作成する場合、マルチバイトを扱う DB への接続にはエンコーディングの指定を正しく行う必要があります。また、構築するシステムの要件によっては、エンコーディング コンバージョン マッピングを Web 層と DB 層で合わせる必要があります。

デプロイメント

WebLogic Server では、J2EE コンポーネントの DD ファイルのマルチバイト文字は XML 宣言に従って扱います。XML 宣言がない場合、もしくは XML 宣言があっても encoding 属性がない場合はファイルを UTF-8 として扱います。

管理コンソールを使用する場合の注意

管理コンソール表示言語について

管理コンソールを起動したときに表示される言語は、お使いの Web ブラウザの言語プロパティで指定している言語になります。例えば、日本語 Windows で動作する IE で特に設定を変更していなければ、管理コンソールを起動すると、日本語で表示されます。表示を英語にする場合は、ブラウザの言語設定を「英語」にし、他の言語のリストを全て削除してください。なお、管理コンソールの出力エンコーディングは、全ての言語で UTF-8 に統一されています。

電子メールを送信する場合のエンコーディング

WebLogic Serverでは、電子メールの送信の実装にJavaMailを使用しています。したがって、JavaMail用のシステムプロパティmail.mime.charsetをWebLogic Serverの起動オプションに加えることにより、送信される電子メールのエンコーディングを変更することができます(このプロパティを省略した場合は、JavaVMのデフォルトのエンコーディングが使用されます)。

例:

    -Dmail.mime.charset=ISO-2022-JP

なお、WebLogic Serverから電子メールを送信する場合の典型的な例として、システム管理における診断サービスの通知にSMTPを使用した場合などが挙げられます。


プログラミング

国際化の概要で述べたとおり、WebLogic Server は全ての文字列を内部的に Unicode で扱いますが、外部リソースとのキャラクタ データの入出力でエンコーディング コンバージョンが発生します。ここでは、アプリケーション プログラミングの観点で、マルチバイト文字を処理する上での注意点をトピックとして扱います。

セキュリティ

公開鍵証明書の UTF-8 エンコーディングサポートについて (CR090467)

WebLogic Server では RFC3280 に基づいて、公開鍵証明書で UTF-8 エンコーディングをサポートしています。RFC3280 の詳細については、Internet X.509 Public Key Infrastructure: Certificate and CRL Profile を参照して下さい。

Web コンポーネント

Web コンポーネントでは、WebLogic Server から見たエンコーディング コンバージョンが発生する外部リソースは、HTTP プロトコルとなります。HTTP プロトコル上のメッセージは、様々なエンコーディングで送信することができるように仕様が規定されています。このため、サーバ内部で扱われる Unicode 文字列と、HTTP プロトコル上の特定のエンコーディングでエンコードされたメッセージとの間のエンコーディング コンバージョンを、Web コンポーネントとしてどう扱うかは非常に重要な問題です。この問題に対し、エンコーディング コンバージョンのための設定が、J2EE の仕様や WebLogic Server 独自の仕様により、いくつかの API やパラメータとして用意されています。これからの説明をよくご理解の上、構築するシステムの要件に合わせて最も適切な設定を組み合わせてください。

Web コンポーネントに関するエンコーディングの設定対象

J2EE の Web コンポーネントに関連するエンコーディングの設定対象は以下になります。

J2EE の仕様では、これらの設定対象を省略した場合のデフォルト エンコーディングを定義しています。各コンポーネントのデフォルト エンコーディングは以下のようになります。

コンポーネント名 デフォルト エンコーディング
Servlet ISO-8859-1
JSP ISO-8859-1
XML 形式 JSP Document UTF-8
Tag ファイル ISO-8859-1
XML 形式 Tag ファイル UTF-8

このように、XML 形式のコンポーネント以外では、デフォルト エンコーディングとして ISO-8859-1 エンコーディングが使用されるため、マルチバイト文字を使用する場合は、エンコーディングの設定が必須となります。以下、Web コンポーネント毎に設定の詳細を表にまとめて説明します。表の各カラムの意味は以下のとおりです。

レスポンスのエンコーディング指定

Servlet の場合

Servlet のレスポンスのエンコーディング指定には以下の 3 つの方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
ServletResponse#setContentType メソッド HTTP レスポンス毎 Charset 属性 (IANA 名) 付きの MIME タイプ YES 1 setContentType("text/html;charset=Shift_JIS");
ServletResponse#setCharacterEncoding メソッド HTTP レスポンス毎 IANA 名 YES 1 setCharacterEncoding("EUC-JP");
ServletResponse#setLocale メソッド HTTP レスポンス毎 ロケール名 (注 1) YES 2 setLocale(ja);

注 1: ロケール名から決まる IANA 名により、エンコーディングが決定されます。ロケールと IANA 名のマップについては、Locale から IANA へのマップを参照してください。

なお、これらのメソッドは以下のように、Writer を取得する前に呼び出す必要があります。


    res.setContentType("text/html;charset=Shift_JIS");
    PrintWriter out = res.getWriter();

JSP の場合

JSP のレスポンスのエンコーディング指定には以下の 5 つの方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
Page ディレクティブの contentType 属性 ファイル毎 Charset 属性 (IANA 名) 付きの MIME タイプ YES 1 <%@ page contentType="text/html; charset=EUC-JP" %>
web.xml の page-encoding 要素 指定の URL パターン内 IANA 名と URL パターン YES 2 <jsp-config>
  <jsp-property-group>
    <url-pattern>/euc/*</url-pattern>
    <page-encoding>EUC-JP</page-encoding>
  </jsp-property-group>
  <jsp-property-group>
    <url-pattern>/utf8/*</url-pattern>
    <page-encoding>UTF-8</page-encoding>
  </jsp-property-group>
</jsp-config>
Page ディレクティブの pageEncoding 属性 ファイル毎 IANA 名 YES 2 (注 1) <%@ page pageEncoding="Windows-31J" %>
weblogic.xml の encoding 要素 (非推奨) Web アプリケーション全体 Java エンコーディング名 NO 3 <jsp-descriptor>
  <encoding>Windows-31J</encoding>
</jsp-descriptor>
weblogic-application.xml の application-param 要素内の webapp.encoding.default パラメータ (注 2) エンタープライズ アプリケーション全体 IANA 名 NO 4 <application-param>
  <param-name>webapp.encoding.default</param-name>
  <param-value>EUC-JP</param-value>
</application-param>

注 1: JSP2.0 の仕様により、web.xml の page-encoding 要素と page ディレクティブの pageEncoding 属性が異なると、JSP のコンパイル時にエラーとなります。その結果として、両者の優先度は同じになります。

注 2: ここで設定した値は、JSP がコンパイルされた Servlet コード内の ServletResponse#setContentType メソッドの引数に反映されます。したがって、webapp.encoding.default を変更した場合、変更を有効にするには、エンタープライズ アプリケーション全体の JSP ファイルを再ビルドする必要があります。

JSP Document の場合

JSP Document のレスポンスのエンコーディング指定には以下の方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
Page ディレクティブの contentType 属性 ファイル毎 Charset 属性 (IANA 名) 付きの MIME タイプ YES 1 <jsp:directive.page contentType="text/html; CHARSET=euc-jp"/>

リクエストのエンコーディング指定

HTTP リクエストのエンコーディングを指定する方法として、最も HTTP 仕様に即したものは、HTTP リクエストの ContentType ヘッダの charset 属性にキャラクタ セットを記述することです。これにより、受け取り側の WebLogic Server は正しく HTTP リクエストのエンコーディングをプロトコルベースで認識することができます。しかし、マイクロソフトの IE、およびネットスケープ ブラウザ等の主要な Web ブラウザは、この値を指定することはできません。このため、HTTP リクエストのエンコーディングの指定も WebLogic Server 側で設定することになります。

リクエストのエンコーディングの設定は、JSP/Servlet で共通で、以下の 3 つの方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
ServletRequest#setCharacterEncoding メソッド HTTP リクエスト毎 IANA 名 YES 1 setCharacterEncoding("EUC-JP");
weblogic.xml の input-charset 要素 指定の URL パターン内 Java エンコーディング名と URL パターン NO 2 <charset-params>
  <input-charset>
    <resource-path>/*</resource-path>
    <java-charset-name>EUC_JP</java-charset-name>
  </input-charset>
  <input-charset>
    <resource-path>/rus/joe/*</resource-path>
    <java-charset-name>Shift_JIS</java-charset-name>
  </input-charset>
</charset-params>
weblogic-application.xml の application-param 要素内の webapp.encoding.default パラメータ エンタープライズ アプリケーション全体 IANA 名 NO 3 <application-param>
  <param-name>webapp.encoding.default</param-name>
  <param-value>EUC-JP</param-value>
</application-param>

ファイルのエンコーディング指定

Servlet 以外の Web コンポーネントは、Web コンテナが実行時に適当なエンコーディングで読み込む必要があります。例えば、JSP コンパイラは、JSP ファイルを Servlet の Java コードに翻訳する時に、適当なエンコーディングを使って JSP ファイルを読み込みます。このように、Servlet 以外の Web コンポーネントについては、ファイルのエンコーディングを正しく設定する必要があります。

JSP の場合

JSP ファイルのエンコーディング指定には以下の 4 つの方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
web.xml の page-encoding 要素 指定の URL パターン内 IANA 名と URL パターン YES 1 <jsp-config>
  <jsp-property-group>
    <url-pattern>/euc/*</url-pattern>
    <page-encoding>EUC-JP</page-encoding>
  </jsp-property-group>
  <jsp-property-group>
    <url-pattern>/utf8/*</url-pattern>
    <page-encoding>UTF-8</page-encoding>
  </jsp-property-group>
</jsp-config>
page ディレクティブの pageEncoding 属性 ファイル毎 IANA 名 YES 1 (注 1) <%@ page pageEncoding="Windows-31J" %>
page ディレクティブの contentType 属性 ファイル毎 charset 属性 (IANA 名) 付きの MIME タイプ YES 2 <%@ page contentType="text/html; charset=EUC-JP" %>
weblogic.xml の encoding 要素 (非推奨) Web アプリケーション全体 Java エンコーディング名 NO 3 <jsp-descriptor>
  <encoding>Windows-31J</encoding>
</jsp-descriptor>

注 1: JSP2.0 の仕様により、web.xml の page-encoding 要素と page ディレクティブの pageEncoding 属性が異なると、翻訳時にエラーとなります。その結果として、両者の優先度は同じになります。

JSP Document の場合

JSP Document は、XML として記述されるので、JSP Document ファイルのエンコーディング指定は XML の仕様に準拠します。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
XML 宣言の encoding 属性 ファイル毎 IANA 名 YES 1 <?xml version='1.0' encoding='utf-8' ?>

なお、JSP2.0 の仕様により、JSP Document において、web.xml の page-encoding 要素や page ディレクティブの pageEncoding 属性によるファイル エンコーディングの設定をした場合、これらが JSP Document の XML 宣言の encoding 属性と矛盾していると、翻訳時にエラーとなります。

Tag ファイルの場合

Tag ファイルのエンコーディング指定は以下の方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
tag ディレクティブの pageEncoding 属性 ファイル毎 IANA 名 YES 1 <%@ tag pageEncoding="Windows-31J" %>

XML 形式 Tag ファイルの場合

XML 形式 Tag ファイルのエンコーディング指定は以下の方法があります。

設定箇所 有効範囲 設定値 J2EE 準拠 優先度 設定例
XML 宣言の encoding 属性 ファイル毎 IANA 名 YES 1 <?xml version='1.0' encoding='utf-8' ?>

なお、JSP2.0 の仕様により、XML 形式 Tag ファイルに、tag ディレクティブの pageEncoding 属性によるファイル エンコーディングの設定をすると、翻訳時にエラーとなります。

JSP のパース方法

JSP2.0 の仕様により、page ディレクティブの同じ要素が 2 回以上出現し、かつそれらが異なると翻訳時にエラーとなります。例えば、1 つのファイルに、2 つ以上のエンコーディング指定の異なる contentType があった場合などが該当します。

include タグの静的・動的の違いと page タグでのエンコーディングの指定

静的インクルード

JSP の静的インクルードは以下のように記述します。

    <%@ include file="relativeURL" %>

この場合、インクルードするファイルをすべて読み込んで 1 つのファイルにしてから JSP のコンパイルをする動作になります。したがって、インクルードされる JSP とインクルードする JSP の双方に page ディレクティブのエンコーディングの設定をして、かつそれらが異なると、JSP のパース方法で述べたとおり、翻訳時にエラーになります。

動的インクルード

JSP の動的インクルードは以下のように記述します。

    <jsp:include page="{ relativeURL | <%= expression %>}" flush="true" />

jsp:include では、このページをロードした段階ではインクルードは行われず、タグのまま残ります。そしてこのページが実行された段階でインクルードを行うため、インクルード元のエンコーディングの指定を引き継ぐ事ができません。したがってインクルードされるファイルにも必ずエンコーディングの指定が必要になります。

HTTP レスポンスに関する Java エンコーディングと IANA キャラクタ セットのマッピングの変更 (J2EE非互換)

setContentType() や、page タグの Content-Type ディレクティブの指定には IANA のキャラクタ セット名を使用します。しかし、Java アプリケーションである WebLogic Server でエンコーディングを取り扱う場合には、これらの値は Java のエンコーディング名でなければなりません。WebLogic Server では内部でデフォルトのマッピングを持っていて、通常はそれを使用します。また、デフォルトのマッピングには IANA には定義されていないものの、歴史的に HTML の Content-Type で使われてきたものも存在します (WebLogic Server で既に定義している MIME-Java エンコーディング マップを参照)。

例: x-sjis ----> Shift_JIS

このマッピングは独自に変更することが可能です。以下のように、weblogic.xml で設定します。

例えば WebLogic Server では、IANA キャラクタ セットの Shift_JIS は Java の Shift_JIS にマップしている (Java1.4 では SJIS のエイリアスとなっている) ため、contentType が 'Shift_JIS' の場合は SJIS として扱われます。

注意: Java1.3 では IANA キャラクタ セットの Shift_JIS は MS932 として扱われていました (JDK1.1.8 以降 JDK1.4.0 まで。JDK1.4.1 から Shift_JIS は SJIS へ戻されました)。

したがって、デフォルトの設定では Shift_JIS を使用すると MS932 独自文字を使用する事ができません。

デフォルトのマッピングとは異なるエンコーディングを割り当てて使うためには次のようにデフォルトのマッピングを上書きします。weblogic.xml の <charset-mapping> に次のように指定します。

この場合は、Shift_JIS を MS932 にマップしています。

    <charset-params>
      <charset-mapping>
        <iana-charset-name>Shift_JIS</iana-charset-name>
        <java-charset-name>MS932</java-charset-name>
      </charset-mapping>
    </charset-params>

注意: この指定は、HTTP レスポンスに関してのみ有効であることに注意してください。例えば、JSP などのファイルエンコーディング (ページエンコーディング) に対しては有効となりません。

CGIServlet

マルチバイトを使用した CGI サービスを WebLogic Server 上の CGI サーブレットへ移行する際は、CGI プログラムが生成する HTTP ヘッダに ContentType で charset パラメータが正しく設定されている必要があります。ContentType を省略した場合は、J2EE Servlet コンテナのデフォルトである ISO-8859-1 が使われます。また、クライアントからの入力文字列を正しく受け取るために、weblogic.xml の input-charset パラメータを使用する必要があります。対象の Web アプリケーションの DD ファイルの記述が必要です。存在しない場合は ISO-8859-1 が使われます。

Form-Based 認証での入力エンコーディングの指定

Form-Based 認証の入力エンコーディングをフォーム内で指定するには、次のように、使用するエンコーディング名を j_character_encoding に指定してください。なお、この機能は WebLogic Server 独自の機能です。

    < form method="POST" action="j_security_check" >
      Username: <input type="text" name="j_username">
      Password: <input type="password" name="j_password">
      <input type="hidden" name="j_character_encoding" value="Shift_JIS">
      <input type="submit" value="Login">
      <input type="reset" value="Reset">
    </form>

リクエスト URL のマルチバイト文字の使用

URL をデコードする際のデフォルトの動作

WebLogic Server は、例えば、以下のような HTTP リクエストを受信した場合、

    http://myHostName:port/myContextPath/myRequest/?myRequestParameter

何も設定しない場合、WebLogic Server では myContextPath、myRequest 部分を以下のように扱います。

  1. myContextPath、myRequest 部を URL デコードする
  2. 1. で得られたバイト ストリームを UTF-8 文字列としてデコードし String 化する

たとえば、User Agent (web ブラウザ) が MS IE (マイクロソフト インターネット エクスプローラ) の場合、デフォルトではアドレス バーに入力されたマルチバイト文字はまず UTF-8 でエンコードされ、それが URL エンコードされます。WebLogic Server は、デフォルトでこの UTF-8 で送られる URL を正しく String 化します。

注意: IE の [インターネット オプション] の [詳細設定] に [常に UTF-8 として URL を送信する (再起動が必要)] というオプションがありますが、このオプションはオンに (チェック) しておく必要があります。

なお、myRequestParameter 部はリクエストのエンコーディング指定に従ってデコードされます。また、myHostName 部は IESG により、国際化ドメイン名として現在標準化作業が進められています。

独自の User Agent を使用していて、リクエスト URL にマルチバイトが必要な場合には、文字列は UTF-8 でバイト列にした後、URL エンコードして WebLogic Server に送信するようにしてください。URI を作る際に UTF-8 をベースに URL エンコードすることは W3C で推奨されています。(http://www.w3.org/TR/charmod/#sec-URIs)

URL デコードする際の文字エンコーディングを指定する方法

User Agent によっては、リクエスト URL を UTF-8 で URL エンコードしないものがあります。ネットスケープ ブラウザの場合、アドレス バーの文字はネットスケープ ブラウザが動作する環境のキャラクタ セットでエンコードされ、さらにその文字列が URL エンコードされて WebLogic Server へ送信されます。例えば、日本語 Windows 上で動作するネットスケープ ブラウザは、リクエスト URL を Windows-31J で URL エンコードします。これに対応するには、WebLogic Server で URL デコードした後のバイト ストリームを Windows-31J で String 化するように設定します。次の WebLogic Server の起動オプションにより URL デコードするエンコーディングを変更することができます。

    -Dweblogic.http.URIDecodeEncoding=Windows-31J

ただし、この設定は 1 つのサーバ インスタンスで 1 つのみ可能です。

 

Web サービス

JMS 転送でマルチバイト文字を扱う場合

JMS 転送を使用してマルチバイト文字を含むメッセージを送信するには、メッセージを BytesMessage として送信する必要があります。
BytesMessage として送信するにはポートを取得後、以下のいずれかの方法でメッセージ タイプを BytesMessage に設定して下さい。

  1. ((Stub)port)._setProperty(WLStub.JMS_TRANSPORT_MESSAGE_TYPE, WLStub.JMS_BYTESMESSAGE)
  2. weblogic.wsee.util.JmsUtil.setJmsTransportBytesMessage((Stub)port)

なお、メッセージの受信側では、送信メッセージと同じタイプを自動的に選択するため、特別な設定は必要ありません。

SOAP メッセージの受信

WebLogic Sever 9.0 の Web サービスは、Enterprise Web Services 1.1 specification (JSR-921) を実装します。JSR-921 では、SOAP1.1 を採用しています。また、SOAP1.1 の HTTP/SOAP メッセージのメディアタイプは 'text/xml' であり、そのエンコーディングの扱いは RFC2376 で規定されています。このため、WebLogic Sever 9.0 の Web サービスの SOAP メッセージの受信のエンコーディングに関する動作は以下のようになります。

SOAP1.1:

開発した Web サービスを HTTP/SOAP で呼び出すクライアントは、ContentType の charset 指定が正しくされていることをご確認ください。

SOAP メッセージの送信

WebLogic Sever は HTTP/SOAP メッセージを UTF-8 で生成します。その際、SOAP メッセージの ContentType ヘッダの charset 属性として、utf-8 が付加されます。

UDDI エクスプローラ

UDDI エクスプローラは us-ascii 文字のみをサポートします。マルチバイト文字は正しく使用できません。

 

XML

Streaming API for XML (StAX) のマルチバイト文字の扱い

Streaming API for XML (StAX) を使用して生成する XML のヘッダにエンコーディング情報を付加するには、ElementFactory クラスの createStartDocument() を使用して以下のように行います。

    XMLOutputStreamFactory factory = XMLOutputStreamFactory.newInstance();
    XMLOutputStream output = factory.newOutputStream(new
                        OutputStreamWriter(new FileOutputStream(fname),"Shift_JIS"));
    output.add(ElementFactory.createStartDocument("Shift_JIS","1.0"));
    output.flush();

なお、StAX を使用してマルチバイトを含む XML ドキュメントをパースする場合は xerces パーサなどと同様に以下の点にご注意ください。

 

JDBC

BEA WebLogic Type4 Oracle ドライバ (日本語を扱う場合のみの注意)

codePageOverride プロパティを使用した場合

Oracle データベースは、キャラクタ セット毎に、Unicode とデータベース上のコード ポイントとのマップを持っています。このマップは、文字をデータベースにストアしたり、取り出したりする場合に使用されます。例えば、Oracle Thin ドライバを使用する場合、Oracle データベース サーバ側がこのマップを使用して Unicode とデータベース上のコード ポイントとの変換を行います。

Oracle 用の WebLogic Type4 Driver には、この変換を JDK のコンバータのマップを使って行う codePageOverride というプロパティが用意されています。codePageOverride プロパティで指定できる値と動作については、以下の表のようになります。

動作を保証する接続先のデータベース 動作
SJIS キャラクタセットが JA16SJIS、JA16SJISTILDE、JA16SJISYEN のいずれか 接続先のデータベースのキャラクタ セットで扱うことのできるすべてのマップのうち、JDK の SJIS のコンバータと一致するマップによる変換を保証する。一致しないマップは保証されない。
MS932 キャラクタセットが JA16SJIS、JA16SJISTILDE、JA16SJISYEN のいずれか 接続先のデータベースのキャラクタ セットで扱うことのできるすべてのマップのうち、JDK の MS932 のコンバータと一致するマップによる変換を保証する。一致しないマップは保証されない。
UTF8 全てのデータベース ドライバは、データベースと通信する際、文字エンコードとしてUTF-8を使用する。この結果、データベースにストアする文字の扱いが Oracle Thin ドライバと同じになる。

なお、codePageOverride=SJIS を指定した場合と codePageOverride=MS932 を指定した場合の違いは、MS932 コンバータと SJIS コンバータの違いとしてそのまま現れます。例えば、異なる Unicode にマップされる~ (Wave Dash) や¢ (Cent Sign) 等の記号の扱いなどが影響を受けます。Unicode の定義と Java コンバータに起因する文字化け対策 (日本語を扱う場合のみの注意) などを参考に、構築するシステムの要件に合わせて適切な設定を行ってください。

注意: codePageOverride=UTF8は、WebLogic Server 9.1 以降から使用可能となります。

codePageOverride プロパティを省略した場合

WebLogic Server 9.0 以降では、codePageOverride プロパティを省略した場合、接続先のデータベースのキャラクタ セットが JA16SJIS、JA16SJISTILDE、JA16SJISYEN については、データベースにストアする文字の扱いが Oracle Thin ドライバと同じなりました。変更内容や以前のバージョンからのバージョンアップに関する注意点などについては、BEA WebLogic Type4 JDBC Driver for Oracle の codePageOverride プロパティについてを参照してください。

jDriver for Oracle から移行する場合の注意

JA16SJIS キャラクタ セットのデータベースに対して jDriver for Oracle を使用していて、WebLogic Type4 Oracle ドライバに移行した際に~ (Wave Dash) が文字化けする場合は、データベースを JA16SJISTILDE に移行するか、codePageOverride=MS932 を指定することで回避できます。

 

その他

Unicode の定義と Java コンバータに起因する文字化け対策 (日本語を扱う場合のみの注意)

プラットフォーム ネイティブのエンコーディングから Unicode へのコンバージョンと、Unicode からプラットフォーム ネイティブのエンコーディングへのコンバージョンでは、同じコンバータを使用しないと正しく文字を扱えない場合があります。ここでは、特に MS932 コンバータと SJIS コンバータで、それぞれ異なる Unicode にマップされる文字に関して、例を挙げて説明します。

例えば、以下のように、データベースにストアされたデータを、WebLogic Server にデプロイした JSP で表示するようなアプリケーションを考えます。

    データベース -------------> WebLogic Server -------------> Web ブラウザ
    (ネイティブ)     MS932            (Unicode)            SJIS           (ネイティブ)

簡単なアプリケーションですが、エンコーディングのコンバージョンで紹介したとおり、WebLogic Server を介して、プラットフォーム ネイティブのエンコーディングと Unicode のエンコーディング コンバージョンが最低 2 回行われます。この例では、データベースと WebLogic Server 間で MS932 コンバータ、WebLogic Server と Web ブラウザの間で SJIS コンバータが使用されています。この場合、次のコードが正しく扱えず、文字化けなどが生じます。

SJIS コード
"~" (0x8160)
"∥" (0x8161)
"¢" (0x817C)
"-" (0x8191)
"£" (0x8192)
"¬" (0x81CA)

文字化けを防ぐには、WebLogic Server と Web ブラウザの間、またはデータベースと WebLogic Server 間のエンコーディング コンバージョンを変更して、両者を一致させる必要があります。

WebLogic Server と Web ブラウザの間のエンコーディング コンバージョンを変更する

例えば、JSP の page タグで

    <%@ page contentType="text/html; charset=Shift_JIS" %>

と指定している場合 (ここにおける Shift_JIS は IANA 名)、WebLogic Server と Web ブラウザの間で MS932 コンバータを使用するには、以下の 2 つの方法があります。

a) page タグの指定を Shift_JIS (IANA 名) から Windows-31J (IANA 名) へ書き直す。

b) weblogic.xml に次の定義を記述して WebLogic Server が内部的に持つデフォルトのエンコーディング対応テーブル Shift_JIS (IANA 名) -> SJIS (Java コンバータ名)Shift_JIS (IANA 名) -> MS932 (Java コンバータ名) に変更する。

    <charset-params>
      <charset-mapping>
        <iana-charset-name>Shift_JIS</iana-charset-name>
        <java-charset-name>MS932</java-charset-name>
      </charset-mapping>
    </charset-params>

b) の方法については、HTTP レスポンスに関する Java エンコーディングと IANA キャラクタ セットのマッピングの変更 (J2EE非互換) を参照してください。a) の方法を採用できない場合 (修正量が多すぎる等) に有効です。

データベースと WebLogic Server 間のエンコーディング コンバージョンを変更する

BEA WebLogic Type4 Oracle ドライバを使用している場合は、codePageOverride プロパティを使って、データベースと WebLogic Server 間のエンコーディング コンバージョンを変更することができます。

iMode 文字を使用する場合 (日本語を扱う場合のみの注意)

Java の MS932 エンコーディング テーブルは外字エリアのコンバージョンに対応しています。MS932 を使用することで iMode 外字を使用したコンテンツを提供することが可能です。

WTC TUXEDO ドメインに対するエンコーディングの指定

TUXEDO のドメインに対して wtc のドメインのエンコーディングを指定することができます。以下のパラメータを起動時に指定します。WebLogic Server のスタート スクリプト (StartWebLogic.cmd ファイルなど) を変更します。

    -Dweblogic.wtc.encoding=Java エンコーディング名

このエンコーディング指定は TUXEDO ドメイン全体に対して有効です。


WebLogic Server で既に定義している MIME-Java エンコーディング マップ

IANA から Java へのマップ

US-ASCII ANSI_X3.4-1968

US-ASCII

US-ASCII

ISO-IR-6

US-ASCII

ANSI_X3.4-1986

US-ASCII

ANSI_X3.4-1968

US-ASCII

ISO_646.IRV:1991

US-ASCII

ASCII

US-ASCII

ISO646-US

US-ASCII

US

US-ASCII

IBM367

US-ASCII

CP367

US-ASCII

CSASCII

US-ASCII

IBM-367

US-ASCII

Latin1

ISO-8859-1

ISO-8859-1

ISO-IR-100

ISO-8859-1

ISO_8859-1

ISO-8859-1

LATIN1

ISO-8859-1

L1

ISO-8859-1

IBM819

ISO-8859-1

CP819

ISO-8859-1

CSISOLATIN1

ISO-8859-1

IBM-819

ISO-8859-1

Latin3

ISO-8859-3

ISO-8859-3

ISO-IR-109

ISO-8859-3

ISO_8859-3

ISO-8859-3

LATIN3

ISO-8859-3

L3

ISO-8859-3

CSISOLATIN3

ISO-8859-3

Latin4

ISO-8859-4

ISO-8859-4

ISO-IR-110

ISO-8859-4

ISO_8859-4

ISO-8859-4

LATIN4

ISO-8859-4

L4

ISO-8859-4

CSISOLATIN4

ISO-8859-4

Cyrillic

ISO-8859-5

ISO-8859-5

ISO-IR-144

ISO-8859-5

ISO_8859-5

ISO-8859-5

CYRILLIC

ISO-8859-5

CSISOLATINCYRILLIC

ISO-8859-5

Arabic

ISO-8859-6

ISO-8859-6

ISO-IR-127

ISO-8859-6

ISO_8859-6

ISO-8859-6

ECMA-114

ISO-8859-6

ASMO-708

ISO-8859-6

ARABIC

ISO-8859-6

CSISOLATINARABIC

ISO-8859-6

Greek

ISO-8859-7

ISO-8859-7

ISO-IR-126

ISO-8859-7

ISO_8859-7

ISO-8859-7

ELOT_928

ISO-8859-7

ECMA-118

ISO-8859-7

GREEK

ISO-8859-7

GREEK8

ISO-8859-7

CSISOLATINGREEK

ISO-8859-7

Hebrew

ISO-8859-8

ISO-8859-8

ISO-IR-138

ISO-8859-8

ISO_8859-8

ISO-8859-8

HEBREW

ISO-8859-8

CSISOLATINHEBREW

ISO-8859-8

ISO-8859-8-I

ISO-8859-8

ISO_8859-8-I

ISO-8859-8

CSISO88598I

ISO-8859-8

Latin5

ISO-8859-9

ISO-8859-9

ISO-IR-148

ISO-8859-9

ISO_8859-9

ISO-8859-9

LATIN5

ISO-8859-9

L5

ISO-8859-9

CSISOLATIN5

ISO-8859-9

MIBenum: 109

ISO-8859-13

ISO-8859-13

Latin9

SO-8859-15

ISO-8859-15

ISO_8859-15

ISO-8859-15

LATIN-9

ISO-8859-15

Simplified Chinese

GB2312

GB2312

CSGB2312

GB2312

GB18030

GB18030

ISO-2022-CN

ISO2022CN

Chinese for Taiwan

BIG5

Big5

CSBIG5

Big5

MIBenum 2101

BIG5-HKSCS

Big5-HKSCS

Korean

EUC-KR

EUC-KR

CSEUCKR

EUC-KR

ISO-2022-KR

ISO-2022-KR

CSISO2022KR

ISO-2022-KR

Japanese

SHIFT_JIS

Shift_JIS

SHIFT-JIS

Shift_JIS

CSSHIFTJIS

Shift_JIS

MS_KANJI

Shift_JIS

X-SJIS

Shift_JIS

SJIS

Shift_JIS

WINDOWS-31J

Windows-31J

CSWINDOWS31J

Windows-31J

EUC-JP

EUC-JP

CSEUCPKDFMTJAPANESE

EUC-JP

EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE

EUC-JP

ISO-2022-JP

ISO-2022-JP

CSISO2022JP

ISO-2022-JP

X0201

JIS0201

JIS_X0201

JIS0201

CSHALFWIDTHKATAKANA

JIS0201

X0208

JIS0208

JIS_C6226-1983

JIS0208

ISO-IR-87

JIS0208

JIS_X0208-1983

JIS0208

CSISO87JISX0208

JIS0208

X0212

JIS0212

JIS_X0212-1990

JIS0212

ISO-IR-159

JIS0212

CSISO159JISX02121990

JIS0212

Russian

KOI8-R

KOI8-R

CSKOI8R

KOI8-R

Thai

TIS-620

TIS-620

Traditional Chinese

CNS11643

EUC-TW

EUC-TW

EUC-TW

EUCTW

EUC-TW

MIBenum: 106

UTF-8

UTF-8

UTF8

UTF-8

Unicode

UTF-16

UTF-16

UTF-16BE

UTF-16BE

UTF-16LE

UTF-16LE

MIBenum: 2250 - 2258

WINDOWS-1250

Cp1250

WINDOWS-1251

Cp1251

WINDOWS-1252

Cp1252

WINDOWS-1253

Cp1253

WINDOWS-1254

Cp1254

WINDOWS-1255

Cp1255

WINDOWS-1256

Cp1256

WINDOWS-1257

Cp1257

WINDOWS-1258

Cp1258

EBCDIC

IBM037

Cp037

CP037

Cp037

CSIBM037

Cp037

EBCDIC-CP-US

Cp037

EBCDIC-CP-CA

Cp037

EBCDIC-CP-NL

Cp037

EBCDIC-CP-WT

Cp037

IBM273

Cp273

CP273

Cp273

CSIBM273

Cp273

IBM277

Cp277

CP277

Cp277

CSIBM277

Cp277

EBCDIC-CP-DK

Cp277

EBCDIC-CP-NO

Cp277

IBM278

Cp278

CP278

Cp278

CSIBM278

Cp278

EBCDIC-CP-FI

Cp278

EBCDIC-CP-SE

Cp278

IBM280

Cp280

CP280

Cp280

CSIBM280

Cp280

EBCDIC-CP-IT

Cp280

IBM284

Cp284

CP284

Cp284

CSIBM284

Cp284

EBCDIC-CP-ES

Cp284

EBCDIC-CP-GB

Cp285

IBM285

Cp285

CP285

Cp285

CSIBM285

Cp285

EBCDIC-JP-KANA

Cp290

IBM290

Cp290

CP290

Cp290

CSIBM290

Cp290

EBCDIC-CP-FR

Cp297

IBM297

Cp297

CP297

Cp297

CSIBM297

Cp297

EBCDIC-CP-AR1

Cp420

IBM420

Cp420

CP420

Cp420

CSIBM420

Cp420

EBCDIC-CP-HE

Cp424

IBM424

Cp424

CP424

Cp424

CSIBM424

Cp424

IBM437

Cp437

437

Cp437

CP437

Cp437

CSPC8CODEPAGE437

Cp437

EBCDIC-CP-CH

Cp500

IBM500

Cp500

CP500

Cp500

CSIBM500

Cp500

EBCDIC-CP-CH

Cp500

EBCDIC-CP-BE

Cp500

IBM775

Cp775

CP775

Cp775

CSPC775BALTIC

Cp775

IBM-THAI

Cp838

CSIBMTHAI

Cp838

IBM850

Cp850

850

Cp850

CP850

Cp850

CSPC850MULTILINGUAL

Cp850

IBM852

Cp852

852

Cp852

CP852

Cp852

CSPCP852

Cp852

IBM855

Cp855

855

Cp855

CP855

Cp855

CSIBM855

Cp855

IBM857

Cp857

857

Cp857

CP857

Cp857

CSIBM857

Cp857

IBM00858

Cp858

CP00858

Cp858

CCSID00858

Cp858

IBM860

Cp860

860

Cp860

CP860

Cp860

CSIBM860

Cp860

IBM861

Cp861

861

Cp861

CP861

Cp861

CP-IS

Cp861

CSIBM861

Cp861

IBM862

Cp862

862

Cp862

CP862

Cp862

CSPC862LATINHEBREW

Cp862

IBM863

Cp863

863

Cp863

CP863

Cp863

CSIBM863

Cp863

IBM864

Cp864

CP864

Cp864

CSIBM864

Cp864

IBM865

Cp865

865

Cp865

CP865

Cp865

CSIBM865

Cp865

IBM866

Cp866

866

Cp866

CP866

Cp866

CSIBM866

Cp866

IBM868

Cp868

CP868

Cp868

CSIBM868

Cp868

CP-AR

Cp868

IBM869

Cp869

CP869

Cp869

CSIBM869

Cp869

CP-GR

Cp869

IBM870

Cp870

CP870

Cp870

CSIBM870

Cp870

EBCDIC-CP-ROECE

Cp870

EBCDIC-CP-YU

Cp870

IBM871

Cp871

CP871

Cp871

CSIBM871

Cp871

EBCDIC-CP-IS

Cp871

IBM918

Cp918

CP918

Cp918

CSIBM918

Cp918

EBCDIC-CP-AR2

Cp918

IBM00924

Cp924

CP00924

Cp924

CCSID00924

Cp924

EBCDIC-LATIN9--EURO

Cp924

IBM1026

Cp1026

CP1026

Cp1026

CSIBM1026

Cp1026

IBM01140

Cp1140

CP01140

Cp1140

CCSID01140

Cp1140

IBM01141

Cp1141

CP01141

Cp1141

CCSID01141

Cp1141

IBM01142

Cp1142

CP01142

Cp1142

CCSID01142

Cp1142

IBM01143

Cp1143

CP01143

Cp1143

CCSID01143

Cp1143

IBM01144

Cp1144

CP01144

Cp1144

CCSID01144

Cp1144

IBM01145

Cp1145

CP01145

Cp1145

CCSID01145

Cp1145

IBM01146

Cp1146

CP01146

Cp1146

CCSID01146

Cp1146

IBM01147

Cp1147

CP01147

Cp1147

CCSID01147

Cp1147

IBM01148

Cp1148

CP01148

Cp1148

CCSID01148

Cp1148

IBM01149

Cp1149

CP01149

Cp1149

CCSID01149

Cp1149

MIBenum: 2028 - 2063

2091 - 2100

IBM-1047

Cp1047

IBM1047

Cp1047

CP1047

Cp1047

IBM-37

Cp037

IBM-273

Cp273

IBM-277

Cp277

IBM-278

Cp278

IBM-280

Cp280

IBM-284

Cp284

IBM-285

Cp285

IBM-297

Cp297

IBM-420

Cp420

IBM-424

Cp424

IBM-437

Cp437

IBM-500

Cp500

IBM-775

Cp775

IBM-850

Cp850

IBM-852

Cp852

IBM-855

Cp855

IBM-857

Cp857

IBM-858

Cp858

IBM-860

Cp860

IBM-861

Cp861

IBM-862

Cp862

IBM-863

Cp863

IBM-864

Cp864

IBM-865

Cp865

IBM-866

Cp866

IBM-868

Cp868

IBM-869

Cp869

IBM-870

Cp870

IBM-871

Cp871

IBM-918

Cp918

IBM-924

Cp924

IBM-1026

Cp1026

IBM-1140

Cp1140

IBM-1141

Cp1141

IBM-1142

Cp1142

IBM-1143

Cp1143

IBM-1144

Cp1144

IBM-1145

Cp1145

IBM-1146

Cp1146

IBM-1147

Cp1147

IBM-1148

Cp1148

IBM-1149

Cp1149

Java から IANA へのマップ

ASCII およびそのエイリアス

ASCII

US-ASCII

US-ASCII

US-ASCII

646

US-ASCII

ISO_646.IRV:1983

US-ASCII

ANSI_X3.4-1968

US-ASCII

ISO646-US

US-ASCII

DEFAULT

US-ASCII

ASCII7

US-ASCII

ISO8859_1 およびそのエイリアス

ISO8859_1

ISO-8859-1

8859_1

ISO-8859-1

ISO_8859-1:1987

ISO-8859-1

ISO-IR-100

ISO-8859-1

ISO_8859-1

ISO-8859-1

ISO-8859-1

ISO-8859-1

ISO8859-1

ISO-8859-1

LATIN1

ISO-8859-1

L1

ISO-8859-1

IBM819

ISO-8859-1

IBM-819

ISO-8859-1

CP819

ISO-8859-1

819

ISO-8859-1

CSISOLATIN1

ISO-8859-1

ISO8859_2 およびそのエイリアス

ISO8859_2

ISO-8859-2

8859_2

ISO-8859-2

ISO_8859-2:1987

ISO-8859-2

ISO-IR-101

ISO-8859-2

ISO_8859-2

ISO-8859-2

ISO-8859-2

ISO-8859-2

ISO8859-2

ISO-8859-2

LATIN2

ISO-8859-2

L2

ISO-8859-2

IBM912

ISO-8859-2

IBM-912

ISO-8859-2

CP912

ISO-8859-2

912

ISO-8859-2

CSISOLATIN2

ISO-8859-2

ISO8859_3 およびそのエイリアス

ISO8859_3

ISO-8859-3

8859_3

ISO-8859-3

ISO_8859-3:1988

ISO-8859-3

ISO-IR-109

ISO-8859-3

ISO_8859-3

ISO-8859-3

ISO-8859-3

ISO-8859-3

ISO8859-3

ISO-8859-3

LATIN3

ISO-8859-3

L3

ISO-8859-3

IBM913

ISO-8859-3

IBM-913

ISO-8859-3

CP913

ISO-8859-3

913

ISO-8859-3

CSISOLATIN3

ISO-8859-3

ISO8859_4 およびそのエイリアス

ISO8859_4

ISO-8859-4

8859_4

ISO-8859-4

ISO_8859-4:1988

ISO-8859-4

ISO-IR-110

ISO-8859-4

ISO_8859-4

ISO-8859-4

ISO-8859-4

ISO-8859-4

ISO8859-4

ISO-8859-4

LATIN4

ISO-8859-4

L4

ISO-8859-4

IBM914

ISO-8859-4

IBM-914

ISO-8859-4

CP914

ISO-8859-4

914

ISO-8859-4

CSISOLATIN4

ISO-8859-4

ISO8859_5 およびそのエイリアス

ISO8859_5

ISO-8859-5

8859_5

ISO-8859-5

ISO_8859-5:1988

ISO-8859-5

ISO-IR-144

ISO-8859-5

ISO_8859-5

ISO-8859-5

ISO-8859-5

ISO-8859-5

ISO8859-5

ISO-8859-5

CYRILLIC

ISO-8859-5

CSISOLATINCYRILLIC

ISO-8859-5

IBM915

ISO-8859-5

IBM-915

ISO-8859-5

CP915

ISO-8859-5

915

ISO-8859-5

ISO8859_6 およびそのエイリアス

ISO8859_6

ISO-8859-6

8859_6

ISO-8859-6

ISO_8859-6:1987

ISO-8859-6

ISO-IR-127

ISO-8859-6

ISO_8859-6

ISO-8859-6

ISO-8859-6

ISO-8859-6

ISO8859-6

ISO-8859-6

ECMA-114

ISO-8859-6

ASMO-708

ISO-8859-6

ARABIC

ISO-8859-6

CSISOLATINARABIC

ISO-8859-6

IBM1089

ISO-8859-6

IBM-1089

ISO-8859-6

CP1089

ISO-8859-6

1089

ISO-8859-6

ISO8859_7 およびそのエイリアス

ISO8859_7

ISO-8859-7

8859_7

ISO-8859-7

ISO_8859-7:1987

ISO-8859-7

ISO-IR-126

ISO-8859-7

ISO_8859-7

ISO-8859-7

ISO-8859-7

ISO-8859-7

ISO8859-7

ISO-8859-7

ELOT_928

ISO-8859-7

ECMA-118

ISO-8859-7

GREEK

ISO-8859-7

GREEK8

ISO-8859-7

CSISOLATINGREEK

ISO-8859-7

IBM813

ISO-8859-7

IBM-813

ISO-8859-7

CP813

ISO-8859-7

813

ISO-8859-7

ISO8859_8 およびそのエイリアス

ISO8859_8

ISO-8859-8

8859_8

ISO-8859-8

ISO_8859-8:1988

ISO-8859-8

ISO-IR-138

ISO-8859-8

ISO_8859-8

ISO-8859-8

ISO-8859-8

ISO-8859-8

ISO8859-8

ISO-8859-8

HEBREW

ISO-8859-8

CSISOLATINHEBREW

ISO-8859-8

IBM916

ISO-8859-8

IBM-916

ISO-8859-8

CP916

ISO-8859-8

916

ISO-8859-8

ISO8859_9 およびそのエイリアス

ISO8859_9

ISO-8859-9

8859_9

ISO-8859-9

ISO-IR-148

ISO-8859-9

ISO_8859-9

ISO-8859-9

ISO-8859-9

ISO-8859-9

ISO8859-9

ISO-8859-9

LATIN5

ISO-8859-9

L5

ISO-8859-9

IBM920

ISO-8859-9

IBM-920

ISO-8859-9

CP920

ISO-8859-9

920

ISO-8859-9

CSISOLATIN5

ISO-8859-9

ISO8859_13 およびそのエイリアス

ISO8859_13

ISO-8859-13

8859_13

ISO-8859-13

ISO_8859-13

ISO-8859-13

ISO-8859-13

ISO-8859-13

ISO8859-13

ISO-8859-13

ISO8859_15 およびそのエイリアス

ISO8859_15

ISO-8859-15

8859_15

ISO-8859-15

ISO-8859-15

ISO-8859-15

ISO_8859-15

ISO-8859-15

ISO8859-15

ISO-8859-15

IBM923

ISO-8859-15

IBM-923

ISO-8859-15

CP923

ISO-8859-15

923

ISO-8859-15

LATIN0

ISO-8859-15

LATIN9

ISO-8859-15

CSISOLATIN0

ISO-8859-15

CSISOLATIN9

ISO-8859-15

ISO8859_15_FDIS

ISO-8859-15

Simplified Chinese

EUC_CN

GB2312

GB2312

GB2312

GB2312-80

GB2312

GB2312-1980

GB2312

EUC-CN

GB2312

EUCCN

GB2312

ISO2022CN

ISO-2022-CN

GB18030

GB18030

Chinese for Taiwan

BIG5

Big5

Big5_HKSCS

BIG5_HKSCS

Big5-HKSCS

BIG5-HKSCS

Big5-HKSCS

BIG5HK

Big5-HKSCS

BIG5-HKSCS:UNICODE3.0

Big5-HKSCS

Korean

KSC5601

EUC-KR

EUC_KR

EUC-KR

EUC-KR

EUC-KR

EUCKR

EUC-KR

KS_C_5601-1987

EUC-KR

KSC5601-1987

EUC-KR

KSC5601_1987

EUC-KR

KSC_5601

EUC-KR

5601

EUC-KR

ISO2022KR

ISO-2022-KR

ISO-2022-KR

ISO-2022-KR

CSISO2022KR

ISO-2022-KR

Japanese

SJIS

Shift_JIS

SHIFT_JIS

Shift_JIS

SHIFT-JIS

Shift_JIS

CSSHIFTJIS

Shift_JIS

X-SJIS

Shift_JIS

MS_KANJI

Shift_JIS

PCK

Shift_JIS

MS932

Windows-31J

WINDOWS-31J

Windows-31J

CSWINDOWS31J

Windows-31J

EUC_JP

EUC-JP

EUC-JP

EUC-JP

EUCJIS

EUC-JP

EUCJP

EUC-JP

CSEUCPKDFMTJAPANESE

EUC-JP

EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE

EUC-JP

X-EUC-JP

EUC-JP

X-EUCJP

EUC-JP

ISO2022JP

ISO-2022-JP

JIS

ISO-2022-JP

ISO-2022-JP

ISO-2022-JP

CSISO2022JP

ISO-2022-JP

JIS_ENCODING

ISO-2022-JP

CSJISENCODING

ISO-2022-JP

JIS0201

X0201

JIS0208

X0208

JIS0212

ISO-IR-159

Russian

KOI8_R

KOI8-R

KOI8-R

KOI8-R

KOI8

KOI8-R

CSKOI8R

KOI8-R

Thai

TIS620

TIS-620

TIS620.2533

TIS-620

TIS-620

TIS-620

Traditional Chinese

EUC_TW

CNS11643

CNS11643

CNS11643

EUC-TW

CNS11643

EUCTW

CNS11643

UTF8

UTF8

UTF-8

UTF-8

UTF-8

UNICODE-1-1-UTF-8

UTF-8

Unicode

UTF16

UTF-16

UTF-16

UTF-16

UNICODE

UTF-16

UTF-16BE

UTF-16BE

UNICODEBIG

UTF-16BE

UTF-16LE

UTF-16LE

UNICODELITTLE

UTF-16LE

MIBenum: 2250 - 2258

CP1250

windows-1250

CP1251

windows-1251

CP1252

windows-1252

CP1253

windows-1253

CP1254

windows-1254

CP1255

windows-1255

CP1256

windows-1256

CP1257

windows-1257

CP1258

windows-1258

EBCDIC

CP037

EBCDIC-CP-US

IBM037

EBCDIC-CP-US

IBM-037

EBCDIC-CP-US

037

EBCDIC-CP-US

CP273

IBM273

IBM273

IBM273

IBM-273

IBM273

273

IBM273

CP277

EBCDIC-CP-DK

IBM277

EBCDIC-CP-DK

IBM-277

EBCDIC-CP-DK

277

EBCDIC-CP-DK

CP278

EBCDIC-CP-FI

IBM278

EBCDIC-CP-FI

IBM-278

EBCDIC-CP-FI

278

EBCDIC-CP-FI

CP280

EBCDIC-CP-IT

IBM280

EBCDIC-CP-IT

IBM-280

EBCDIC-CP-IT

280

EBCDIC-CP-IT

CP284

EBCDIC-CP-ES

IBM284

EBCDIC-CP-ES

IBM-284

EBCDIC-CP-ES

CP284

EBCDIC-CP-ES

284

EBCDIC-CP-ES

CP285

EBCDIC-CP-GB

IBM285

EBCDIC-CP-GB

IBM-285

EBCDIC-CP-GB

285

EBCDIC-CP-GB

CP290

EBCDIC-JP-KANA

CP297

EBCDIC-CP-FR

IBM297

EBCDIC-CP-FR

IBM-297

EBCDIC-CP-FR

297

EBCDIC-CP-FR

CP420

EBCDIC-CP-AR1

IBM420

EBCDIC-CP-AR1

IBM-420

EBCDIC-CP-AR1

420

EBCDIC-CP-AR1

CP424

EBCDIC-CP-HE

IBM424

EBCDIC-CP-HE

IBM-424

EBCDIC-CP-HE

424

EBCDIC-CP-HE

CP437

IBM437

IBM437

IBM437

IBM-437

IBM437

437

IBM437

CSPC8CODEPAGE437

IBM437

CP500

EBCDIC-CP-CH

IBM500

EBCDIC-CP-CH

IBM-500

EBCDIC-CP-CH

500

EBCDIC-CP-CH

CP775

IBM775

IBM775

IBM775

IBM-775

IBM775

775

IBM775

CP838

IBM-Thai

IBM838

IBM-Thai

IBM-838

IBM-Thai

838

IBM-Thai

CP850

IBM850

IBM850

IBM850

IBM-850

IBM850

850

IBM850

CSPC850MULTILINGUAL

IBM850

CP852

IBM852

IBM852

IBM852

IBM-852

IBM852

852

IBM852

CSPCP852

IBM852

CP855

IBM855

IBM855

IBM855

IBM-855

IBM855

855

IBM855

CSPCP855

IBM855

CP857

IBM857

IBM857

IBM857

IBM-857

IBM857

857

IBM857

CSIBM857

IBM857

CP858

IBM00858

CP860

IBM860

IBM860

IBM860

IBM-860

IBM860

860

IBM860

CSIBM860

IBM860

CP861

IBM861

IBM861

IBM861

IBM-861

IBM861

CP-IS

IBM861

861

IBM861

CSIBM861

IBM861

CP862

IBM862

IBM862

IBM862

IBM-862

IBM862

862

IBM862

CSPC862LATINHEBREW

IBM862

CP863

IBM863

IBM863

IBM863

IBM-863

IBM863

863

IBM863

CSIBM863

IBM863

CP864

IBM864

IBM864

IBM864

IBM-864

IBM864

CSIBM864

IBM864

CP865

IBM865

IBM865

IBM865

IBM-865

IBM865

865

IBM865

CSIBM865

IBM865

CP866

IBM866

IBM866

IBM866

IBM-866

IBM866

866

IBM866

CSIBM866

IBM866

CP868

IBM868

IBM868

IBM868

IBM-868

IBM868

868

IBM868

CP869

IBM869

IBM869

IBM869

IBM-869

IBM869

869

IBM869

CP-GR

IBM869

CSIBM869

IBM869

CP870

EBCDIC-CP-ROECE

IBM870

EBCDIC-CP-ROECE

IBM-870

EBCDIC-CP-ROECE

870

EBCDIC-CP-ROECE

CP871

EBCDIC-CP-IS

IBM871

EBCDIC-CP-IS

IBM-871

EBCDIC-CP-IS

871

EBCDIC-CP-IS

CP918

EBCDIC-CP-AR2

IBM918

EBCDIC-CP-AR2

IBM-918

EBCDIC-CP-AR2

918

EBCDIC-CP-AR2

CP924

IBM00924

CP1026

IBM1026

IBM1026

IBM1026

IBM-1026

IBM1026

1026

IBM1026

CP1140

IBM01140

CP1141

IBM01141

CP1142

IBM01142

CP1143

IBM01143

CP1144

IBM01144

CP1145

IBM01145

CP1146

IBM01146

CP1147

IBM01147

CP1148

IBM01148

CP1149

IBM01149

CP1047

IBM1047

Locale から IANA へのマップ

ar

ISO-8859-6

be

ISO-8859-5

bg

ISO-8859-5

ca

ISO-8859-1

cs

ISO-8859-2

da

ISO-8859-1

de

ISO-8859-1

el

ISO-8859-7

en

ISO-8859-1

es

ISO-8859-1

et

ISO-8859-1

fi

ISO-8859-1

fr

ISO-8859-1

hr

ISO-8859-2

hu

ISO-8859-2

is

ISO-8859-1

it

ISO-8859-1

iw

ISO-8859-8

ja

Shift_JIS

ko

EUC-KR

lt

ISO-8859-2

lv

ISO-8859-2

mk

ISO-8859-5

nl

ISO-8859-1

no

ISO-8859-1

pl

ISO-8859-2

pt

ISO-8859-1

ro

ISO-8859-2

ru

ISO-8859-5

sh

ISO-8859-5

sk

ISO-8859-2

sl

ISO-8859-2

sq

ISO-8859-2

sr

ISO-8859-5

sv

ISO-8859-1

th

TIS-620

tr

ISO-8859-9

uk

ISO-8859-5

zh

GB2312

zh_TW

Big5

 

ページの先頭 前 次