連載
» 2003年12月02日 10時00分 公開

JavaTips 〜JSP/サーブレット編:リソースファイルの内容が文字化けする場合には

[山田祥寛,@IT]

 「リソースファイルで他国語対応サイトを構築する」では、リソースファイルとResourceBundleクラスを活用したアプリケーションのバイリンガル対応についてご紹介しました。しかし、いざリソースファイルに日本語を含めてしまったら、サイトが見る影もなく文字化けをしてしまったという方はいないでしょうか。

 これは、リソースファイル上では日本語などの2バイト文字は使用できないという制限によるものです。2バイト文字を使用したい場合には、あらかじめリソースファイルをnative2asciiというコマンドラインツールでUnicodeエスケープしておく必要があるのです。

解説

 Unicodeエスケープを行なうnative2asciiはJ2SEに含まれているコマンドラインツールで、「%JAVA_HOME%\bin」に含まれています。

> native2ascii 変換前のファイル名 変換後のファイル名

のように使用することができます。変換後のファイル名が省略された場合には、変換結果がプロンプト画面上にそのまま表示されます。

 また、native2asciiコマンドには以下のオプションが用意されており、リソースファイルの文字エンコーディングや逆変換などを行なうことも可能です。特にリソースファイルがシステムデフォルトの文字コードで記述されていない場合など、エスケープ失敗の原因となるため、-encodingオプションを指定する必要があります。注意してください。

オプション 概要
-encoding文字コード 変換時に使用する文字コードを宣言
-reverse エスケープ済みのファイルを逆変換
-Jオプション Java仮想マシンに渡すパラメータ
native2asciiコマンドのオプション

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。