Java Desktop System は、Unicode UTF-8 エンコーディングで言語をサポートする、Unicode 完全対応の多言語システムです。Java Desktop System には、従来の (UTF-8 以外) エンコーディングをサポートするコードセット変換も備わっています。ここでは、Unicode 多言語コンピューティングへの移行時に起こり得る問題について説明します。
Unicode 多言語コンピューティングへの移行によって影響を受けるデータは、様々な方法でインポートおよびエクスポートできます。
Microsoft Office
ファイルは、Unicode でエンコードされています。StarSuite
アプリケーションでは、Unicode でエンコードされたファイルの読み取りや書き込みができます。
Mozilla Composer
などの HTML エディタを使用して作成した HTML ファイルや、Web ブラウザによって保存された HTML ファイルには、通常、charset エンコーディングタグが含まれています。エクスポートまたはインポートしたあとの HTML ファイルは、
HTML ファイル内のエンコーディングタグに基づいて、Mozilla Navigator
Web ブラウザで表示したり、Mozilla Composer
を使用してファイルを編集することができます。
HTML ファイルは文字化けする場合があります。この問題は、概ね次の理由によります。
charset エンコーディングタグが正しくない。
charset エンコーディングタグがない。
HTML ファイルの charset エンコーディングタグを見つけるには、次の手順を実行します。
Mozilla
を使用してファイルを開きます。
Ctrl+i を押すか、「表示」をクリックして、「表示」メニューを開きます。
「ページ情報」をクリックします。
charset 情報は、「一般」タブの下に次のように表示されます。Content-Type text/html; charset=us-ascii
文字列 charset=us-ascii が、ファイルの実際のエンコーディングと一致しない場合、そのファイルは壊れているように見えることがあります。HTML ファイルのエンコーディングを編集するには、次の手順を実行します。
Mozilla Composer
でファイルを開きます。
「ファイル」メニューを開きます。
「文字エンコードの保存および変更」を選択します。
正しいエンコーディングを選びます。Mozilla Composer
は、自動的にエンコーディングと charset タグを適切に変換します。
現在使用されている電子メールは、MIME charset タグでタグ付けされています。電子メールおよびカレンダアプリケーションでは、MIME charset タグを使用できます。したがって、エンコーディング変換を実行する必要はありません。
プレーンテキストファイルには、charset タグがありません。ファイルが UTF-8 エンコーディングでない場合、エンコーディング変換を行う必要があります。たとえば、繁体字中国語の big5 でエンコードされているプレーンテキストを UTF-8 に変換するには、次のコマンドを実行します。
iconv -f big5 -t UTF-8 inputfilename > outputfilename
エンコーディング変換には、ファイルシステム検査器
も使用できます。
また、テキストエディタ
を使えば、様々な文字エンコーディングのテキストを自動的に読み出したり書き込んだりできます。または、ファイルを開いたり保存するときに、明示的にエンコーディングを指定することもできます。
テキストエディタ
を開始するには、 「起動」をクリックし、 「アプリケーション」 -> 「アクセサリ」 -> 「テキストエディタ」の順に選択します。
マルチバイト文字を含むファイル名やディレクトリ名が UTF-8 エンコーディングになっていない場合は、エンコーディング変換を行う必要があります。ファイルシステム検査器
を使って、レガシー文字エンコーディングによるファイル名やディレクトリ名、プレーンテキストファイルの内容を、UTF-8 エンコーディングに変換できます。詳細は、ファイルシステム検査器
のオンラインヘルプを参照してください。
ファイルシステム検査器
を開始するには、 「起動」をクリックし、「アプリケーション」 -> 「ユーティリティ」 -> 「ファイルシステム検査器」の順に選択します。
ファイルマネージャ
を使用して SMB 経由で Microsoft の Windows 上のファイルにアクセスする場合は、エンコーディング変換せずに UTF-8 以外のファイル名やディレクトリ名にアクセスできます。このとき、バグの為ファイルマネージャー
の「場所: 」に表示されるファイルパスが文字化けした様に見えますが、ファイル内容の表示に支障はありません。
Unicode UTF-8 への移行準備が整っていないアプリケーションの場合、フロントパネルにランチャーを作成すると、従来のロケールでアプリケーションを開始できます。コマンドラインからアプリケーションを直接開始することもできます。アプリケーションのランチャーを作成するには、次の手順を実行します。
フロントパネル上のランチャーを配置したい場所で右クリックします。
「パネルに追加」 -> 「ランチャー」と選択します。
「ランチャーの作成」ダイアログの「コマンド」フィールドに、次の形式で入力を行います。
env LANG=locale LC_ALL=locale アプリケーション名
たとえば、/usr/dt/bin から motif-app という名前のアプリケーションを中国語の Big5 ロケールで開始する場合は、「ランチャーの作成」ダイアログの「コマンド」フィールドに、次のテキストを入力します。
env LANG=zh_TW.BIG5 LC_ALL=zh_TW.BIG5 /usr/dt/bin/motif-app
アプリケーションの正しい LD_LIBRARY_PATH を指定しなければならない場合もあります。
「了解」をクリックすると、パネルにランチャーが作成されます。
従来のロケール固有の CLI (コマンドラインインタフェース) アプリケーションを実行する場合は、まず従来のロケールで端末エミュレータ
ウィンドウを開いた後、同じ端末エミュレータ
ウィンドウで CLI アプリケーションを実行します。端末エミュレータ
ウィンドウを従来のロケールで開くには、次のコマンドを入力します。
env LANG=locale LC_ALL=locale gnome-terminal --disable-factory.
端末エミュレータ
ウィンドウの「文字エンコーディングの設定」メニューでエンコーディングを変換すれば、従来のロケールで新規の端末エミュレータ
ウィンドウを開く代わりに、現在の端末エミュレータ
ウィンドウでロケール設定を UTF-8 から従来のロケールに切り替えることができます。この場合、現在のシェルに対して LANG および LC_ALL 環境変数を設定し直す必要があります。