Issuu on Google+

ビジネス・ユニットの名前

Linuxにおける各種文字コード系の扱いについて

日本IBM Technical Sales Support FTS, Linux ATS PSU_temp_0522

IBM Corporation 8/3/05

この文書のデータの利用または公開には、 最終ページに記載されている制限事項が適用されます。 © 2007 IBM Corporation


ビジネス・ユニットの名前

本資料について ƒ

本資料について 本資料は、Linuxで各種日本語文字コード系を使用するにあたっての注意点やTips、 Hintsを、2007年8月時点の現状に即してまとめたものです。

ƒ

本資料の構成

ƒ

一般に「あるOSが文字コード系Xをサポートする」と言う場合には、以下のように 色々な場合がありますので、下記の場合について順に検証した結果を示します。 1. 端末の入出力にXでエンコードされたテキストを利用できる。 2. ファイルデータとしてXでエンコードされたテキストを保存・利用できる。 3. ファイル名・ディレクトリ名にXでエンコードされた文字列を使用できる。 4. Xでエンコードされたテキストを正しい字体で画面上に表示(描画)できる。 5. OS標準プログラムがコマンドライン引数や入出力データとしてXでエンコードさ れたテキストを正しく処理できる。 表記上の注意 本資料では、特定ディストリビューションや特定リリースにだけ適用可能な情報は次 のように表記します。Red Hat Enterprise Linuxだけに該当する項目には【RHEL】、 SUSE Linux Enterprise Serverだけに該当する場合は【SLES】、特定のリリースに 依存する場合は【RHEL3】や【SLES9】のように、各項目の冒頭にそれぞれ示してい ます。何もない場合、または【共通】とある場合は両者共通の項目であることを示して います。

PSU_temp_0522

2

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

0. 本題の前に:前提知識 ƒ 符号化文字集合(Coded Character Set)

コンピュータシステムでの利用を前提に、使用できる文字の集合を定め たもの。集合に含まれる特定の文字を識別するため各文字には符号 (コード)が割り当てられますが、そのコードの具体的なデータ表現形式 まで定義しているとは限りません。例:ASCII、JIS X 0201、JIS X 0208、 JIS X 0212、JIS X 0213、ISO/IEC 10646、Unicode、Windows-31J など ƒ 文字コード系(Character Coding System)

単一もしくは複数の符号化文字集合をビット列で表現するためのコー ディング方式を定めたもの。例えば、一般的な日本語テキストファイル には、半角英数カタカナ(JIS X 0201)と全角記号・漢字(JIS X 0208ま たはJIS X 0213)など、複数の文字集合で定義された文字が混在して 含まれています。そのようなデータの表現形式を定めたものが文字 コード系です。例:ISO/IEC 2022(ISO-2022-JPやEUC-JPも含む)、 UTF-8、UTF-16 、Shift JISなど PSU_temp_0522

3

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

1. 端末入出力における文字コード系 ƒ 端末入出力における日本語の文字コード系としては、UTF-8、EUC-JP、Shift JIS(注:下記参照)が 利用できます。各コマンドが出力するメッセージは別ファイルとして切り出して各国語版を用意してお り、日本語については各コード系ごとにメッセージファイルを持っています。 ƒ manページの日本語版はデフォルトの文字コード系*で保存されており、それ以外のロケールでは コード変換されて内容が表示されます。 * 日本語ロケールにおけるデフォルト文字コード系はディストリビューションとリリースによって異なります。 RHEL2.1/3の場合: EUC RHEL4/5の場合: UTF-8 SLES9/10の場合: UTF-8またはEUC-JPから選択可能

【RHEL4/5】RHEL4でロケールの文字コード系をEUC-JPまたはShift JISに、RHEL5でShift JISに 変更した際、日本語manページが文字化けを起こします。そのため、/etc/man.configファイルの一 部を下記のように編集して問題を回避してください。 PAGER

/usr/bin/less –isR

(RHEL4の場合。RHEL5では‘R’はない)

↓ PAGER

/usr/bin/less -isr

ƒ 【RHEL】【SLES9】RHEL、SLES9の場合は、導入した状態ではShift JIS日本語ロケール (ja_JP.SJIS)が用意されていません。 Shift JISを利用する場合は(RHELの場合は上記の /etc/man.configの編集に加え) 次ページのロケール定義の操作が必要になります。 ƒ 【SLES10】SLES10では初めからShift JISロケールも定義済みです。 PSU_temp_0522

4

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

1-1. Shift JISロケールの追加 ƒ 現在利用可能な日本語ロケール一覧は下記のコマンドで確認できます。 $ locale –a | grep ja ƒ 【RHEL】【SLES9】導入状態の日本語ロケールでは文字コードとしてUTF-8ま たはEUC-JPがサポートされます。Shift JISについては、 /usr/share/locale/ja_JP.SJISといったディレクトリが存在していたとしても実 は日本語SJISロケールは定義されていないので新たに作成する必要があり ます。具体的には、root権限で下記のコマンドを実行して作成します。警告 メッセージが表示されますが無視して構いません。 # localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS ƒ 上記の操作を行わないとShift JISのファイル名や日本語manページの表示 において文字化けしますので注意してください。 出典:http://www.jp.redhat.com/FAQ/support2.html#19

PSU_temp_0522

5

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

2. ファイルデータの文字コード系 ƒ LinuxだけでなくUNIX系OSでは一般に、ファイルは単なるバイトストリームと して扱われ、OSカーネルはファイルデータには一切関知しません。よって、ど のような文字コード系でエンコードされたテキストでもファイルとして保存する ことができます。 ƒ ただし、ファイルに保存されたテキストデータの取り扱いは完全にアプリケー ションに依存します。

PSU_temp_0522

6

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

3. ファイル名・ディレクトリ名の文字コード系 ƒ Linuxネイティブファイルシステムでは、ファイル名・ディレクトリ名は単なるヌ ル終端文字列として取り扱われ、文字コード系については特に規定されてい ません。よって、文字列の途中にバイト0x00と0x2f *が現れないようなコード 系であればどのようなコード系でも使用できます。 • UNIX系OSではパスの区切り文字としてスラッシュ’/’(ASCII文字コード0x2f)が使用され、 この文字をファイル名・ディレクトリ名に含めることは絶対にできません。複数バイトデータ によって1文字を表すコード系で、いずれかのバイトに’/’のASCIIコードと同じ0x2fが現れる 可能性があるコード系では問題が発生する可能性があります。例としてはISO-2022-JP (RFC1468)がこれに当たります。UTF-8、EUC-JP、Shift JISではこの問題は起こりませ ん。

ƒ しかしこれは裏を返せば、ファイル名に関してはOSとして統一された文字コー ド系が存在しないということで、異なるコード系のファイル名を同一ディレクトリ に混在させるなど、混乱のもとになることも簡単にできてしまうため注意が必 要です。

PSU_temp_0522

7

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

3-1. 各種文字コード系ファイル名の使用 ƒ 例えば、下記のような操作で異なるコード系でエンコードされたファイル名「あ いうえお」のファイルを作成することが可能です(「あいうえお」は日本語入力メ ソッドを起動して入力します)。それぞれのファイルは(ファイル名のバイト列を バイナリ比較すると異なるため)別々のファイルとして認識されます。 ƒ しかしそれぞれの文字コード系が異なるため、すべてのファイル名を同時に 正しく表示することはできません。現在のロケールで指定されている文字コー ド系と一致するファイル名のみ、正しいファイル名が表示されます。 $ LANG=ja_JP.UTF-8 (ここで端末の入出力文字コード系をUTF-8に切り替え) $ touch あいうえお $ LANG=ja_JP.SJIS (ここで端末の入出力文字コード系をShift JISに切り替え) $ touch あいうえお $ LANG=ja_JP.eucJP (ここで端末の入出力文字コード系を日本語EUCに切り替え) $ touch あいうえお $ ls ?????

?????

あいうえお

$

PSU_temp_0522

8

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

3-2. MS-DOSフォーマットメディアの取り扱い ƒ 日本語版のMS-DOS/Windowsでフォーマットされたリムーバブルメディア(フ ロッピーやUSBメモリーキー等。Linuxではvfatファイルシステムとして認識) に日本語名のファイルを作成した場合、ファイル名の文字コード系にはShift JISが使われます。 ƒ しかし、詳細な理由は不明ですが、vfatファイルシステム上の日本語ファイル 名は、たとえロケールと表示系の文字コード系をShift JISに設定していても正 しく表示することができません。vfatファイルシステム内部で何らかのコード変 換を行っているようです。 ƒ そこで、vfatファイルシステムをマウントする際にマウントオプションとして ‘utf8’を追加指定すると、ファイル名に対してShift JIS⇔UTF-8の文字コード 変換が行われるようになります。これにより、ja_JP.UTF-8ロケールにおいて も、メディア上の正しいファイル名をUTF-8文字列で指定することができます。 ファイル名がUTF-8文字列に変換されるため、この手法はja_JP.eucJPロ ケールでは使用できません。MS-DOSメディアの日本語ファイル名を取り扱う 際はロケールの文字コード系を(一時的でも)UTF-8にする必要があります。 ※日本語以外のDBCS言語(中韓等)版で作成したメディアをマウントした場合の挙動は未確認です のでご注意ください。

ƒ 【SLES】SLESではvfatのリムーバブルメディアを自動マウントすると自動的に マウントオプションとしてutf8が指定されます。 PSU_temp_0522

9

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

3-3. ファイル名・ディレクトリ名の文字コード系 ~まとめ~ ƒ

Linux OSの仕様としてディレクトリエントリの文字コード系は決められてい ません。したがってどんな文字コード系でも使えるはずですが、運用上は統 一しなければ混乱を招きます。

ƒ

上記の例外として、日本語版MS-DOS/Windowsで日本語名のファイルを 作成したフロッピーやUSBメモリーなどのリムーバブルメディアがあります。 この種のメディアでは、日本語ファイル名は常にShift JISでエンコードされ ていますが、このままではLinuxで正しく取り扱うことができません。マウント オプション“utf8”を追加指定することでShift JIS⇔UTF-8の文字コード変換 が行われ、日本語ファイル名をUTF-8の文字列としてLinux上で取り扱うこ とができます。

PSU_temp_0522

10

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4. GUI画面表示の文字コード系 ƒ 次に、Linuxサーバー自身で文字描画を行う場合について解説します。ネット ワーク端末などにおける利用に関しては1の端末表示と同様の扱いになりま す。 ƒ Linux上で多言語を扱う場合、GUI(X Window System)の利用が前提となり ます。原則としてプラットフォーム(zipx)によらずキャラクタコンソール上では 日本語表示はできません。 ƒ Linuxサーバーがグラフィカルコンソール上で文字描画を行う場合、文字コー ド系に対応していることのほかに、描画すべき字形データをフォントとして利用 できる必要があります。 ƒ まずは、Linuxサーバーが標準で持っているフォントについて解説します。

PSU_temp_0522

11

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-1. Linuxの標準日本語フォント ƒ Xのフォントファイルとして持っているデータとしては、ASCII(ISO 8859-1)の ほか、JIS X 0201:1976(いわゆるANK)およびJIS X 0208:1983(いわゆる JIS漢字。非漢字+第一水準漢字+第二水準漢字)に定義された文字集合に、 +αされた内容となっています。「+α」部分はディストリビューションとリリー スによって異なります。 ƒ JIS X 0212および、JIS X 0208:1990(1990年改訂版)、さらにJIS X 0208を 包含し拡充した文字集合であるJIS X 0213:2004(俗に言うJIS2004)には正 式には未対応のようですが、上記「+α」の部分に、これらの文字集合で追加 された文字の一部が含まれています。 ƒ +αの部分は、Microsoftが“Windows-31J” としてIANAに登録申請した文 字集合(MSの呼称ではCode Page 932)の中の、いわゆる「機種依存文字」 として知られている部分(一部を除く)です。

PSU_temp_0522

12

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-2. Linuxの標準日本語フォントデータ ƒ Unicodeと互換性のあるISO/IEC 10646文字集合に対応するフォントファイ ルも用意されて���るものの、UnicodeまたはISO/IEC 10646で定義されたす べての文字の字形には対応していないようです。 ƒ ただし、XではTrueType形式のフォントを利用できるため、Windows用などと して販売されている商用TrueTypeフォントをインストールすることで、 Windowsが対応している範囲の日本語の文字はすべて表示できるようになり ます。 ※ 実際にWindows XP用JIS X 0213:2004(JIS2004)対応TrueTypeフォントファイルを RHEL4U4環境に追加して、MSフォントを利用するようにFirefoxの設定を変更したところ、 p.15~18の機種依存文字表示実験において文字の欠落や文字化け、サイズ違いの外観 上の不都合が解消しました。なお、これはあくまで実証実験であって実際の運用に供する にはライセンス的な問題がありますので、詳しい方法はここではご紹介しません。

PSU_temp_0522

13

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-3. Linuxにおける機種依存文字の利用 ƒ

マイクロソフトが制定したWindows-31J文字集合のうち、JIS X 0208に含まれていない、いわゆ る「機種依存文字」には以下の種類があります。以下、この資料で単に「機種依存文字」と言った 場合、Windows-31J文字集合のうちの以下の3種類のサブセットを指して呼びます。

1.

NEC特殊文字 http://www.microsoft.com/globaldev/reference/dbcs/932/932_87.mspx

2.

NEC選定IBM拡張文字 http://www.microsoft.com/globaldev/reference/dbcs/932/932_ED.mspx http://www.microsoft.com/globaldev/reference/dbcs/932/932_EE.mspx

3.

IBM拡張文字 http://www.microsoft.com/globaldev/reference/dbcs/932/932_FA.mspx http://www.microsoft.com/globaldev/reference/dbcs/932/932_FB.mspx http://www.microsoft.com/globaldev/reference/dbcs/932/932_FC.mspx 参考リンク:Wikipedia 「Microsoftコードページ932」 http://ja.wikipedia.org/wiki/CP932

ƒ

次ページ以降で上記の機種依存文字をLinux上で表示してみた例を示します。

ƒ

なお、一般に「外字」と呼ばれるユーザー定義文字がありますが、外字については通常のLinux では一切サポートされていません。外字に対応したケースとしては、下記リンクの日本経済新聞 社様の事例があり、IBM、ジャストシステム、TurboLinuxの3社が協業してLinux版ATOKを外字 に対応させた実績があります。 http://www-06.ibm.com/jp/solutions/casestudies/20040406nikkei.html

PSU_temp_0522

14

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-3-1. NEC特殊文字の表示 ƒ 【RHEL3】右上の図はRHEL3U8標準環境に て、NEC特殊文字を埋め込んだHTMLファイ ルをMozilla Webブラウザーで表示させた例 です(右下は同じデータをWindows XPで表 示させた例) 。 ƒ 0x8772(㎎)、0x8773(㎏)、0x8774(㎡)、 0x877e(㍻)のコードに対応する字形が欠落 しています。 ƒ 0x8780から0x8799にかけて、定義されてい る文字と異なる文字が表示されている部分が あります。 ƒ ローマ数字の一部に大きさが異なる文字があ り(Ⅶ、Ⅷ、Ⅸ)、統一感が損なわれています。 ƒ 【RHEL4】若干の違いはありますがRHEL3と ほぼ同様の結果となります。 ƒ 【RHEL5】0x8780の行に一部文字化けと欠 落、0x8790の行の記号の一部が他の文字よ り小さく表示されますが、それ以外は問題あり ません。 ƒ 【SLES】SLES9/10の場合、NEC特殊文字は すべて正しい字形で表示できます。 PSU_temp_0522

15

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-3-2. NEC選定IBM拡張文字の表示 ƒ 【RHEL3/4】右は同様にRHEL3U8で NEC選定IBM拡張文字を表示させた例 です。NEC特殊文字の場合と同様、 ローマ数字に大きさの異なる文字が混 在して統一感を損ねており、また欠落す る文字も相当数あります。 ƒ 欠落していない文字については正しい 字形が表示されています。 ƒ RHEL4でもほぼ同様です。 ƒ 【SLES9】SLES9の場合はRHELより欠 落文字がかなり少なくなっていますが、 ローマ数字の大きさに統一感がないの は同様です。 ƒ 【SLES10】【RHEL5】欠落文字はなく、 大きさがそろっていない文字もありませ ん。

PSU_temp_0522

16

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-3-3. IBM拡張文字の表示 ƒ 【RHEL】右は同様にIBM拡張文字を表 示させた例です。NEC特殊文字の場合 と同様、ローマ数字に大きさの異なる文 字が混在して統一感を損ねており、また 欠落する文字も相当数あります。 ƒ 欠落していない文字については正しい 字形が表示されています。 ƒ 【SLES9】SLES9の場合はRHEL3/4よ り欠落文字がかなり少なくなっています が、ローマ数字の大きさに統一感がな いのは同様です。 ƒ 【SLES10】【RHEL5】欠落文字はなく、 大きさがそろっていない文字もありませ ん。

PSU_temp_0522

17

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-4. GUIターミナル上での表示 ƒ ここでは、各ディストリビューションの各リリースに関して、GUI環境での標準ターミナル ソフトウェアでの日本語表示の対応状況についてまとめます。 ƒ 【RHEL3/4】表示文字コードがEUC-JPの場合、Gnome terminal上では機種依存文字 の文字化けが見られます*。文字化けの程度はリリースに依存します。 * 機種依存文字をEUC-JPで表現した場合に文字化けが起きやすいのは、 EUC-JPの亜種がそれぞれ異なる機種依存文字のマッピングを行っている からです。詳しくは参考リンクのWikipedia「EUC-JP」の項を参照してくださ い。 ƒ 【SLES9】標準デスクトップ環境KDEの端末エミュレータKonsoleにおいては機種依存 文字はほとんどまったく表示できません。端末にて機種依存文字の表示が必要な場合 はKDEではなくGNOMEを利用するほうが良いでしょう。 ƒ 【RHEL5】【SLES10】Gnome terminalの文字コード系をUTF-8にしている場合は機種 依存文字も含む日本語表示には、 ○数字とローマ数字の大きさが異なることを除くと ほぼ問題がなくなりました。ただし、Gnome terminalの文字コード系としてEUC-JPか Shift JISを選択して機種依存文字を含むファイルを表示すると、機種依存文字すべて 文字化けを起こします。機種依存文字を含むテキストファイルの編集を行う場合は UTF-8を使用する必要があります。

PSU_temp_0522

18

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

4-5. GUI画面表示の文字コード系 ~まとめ~ ƒ Linuxサーバー自身が画面に文字を表示(描画)する場合には、文字コード系 に対応していることはもとより、描画する文字のフォントを持っているかどうか が問題となります。 ƒ 表示する文字がJIS X 0201(ANK)とJIS X 0208(第一・第二水準漢字)の範 囲であれば、まったく問題なく描画できます。 ƒ MicrosoftがWindows-31J文字集合に含まれる機種依存文字もかなりの割 合で描画できますが、RHEL3/4、SLES9では100%対応ではありません。こ の問題はWindows用商用TrueTypeフォントの追加導入で解決できます。 ƒ 外字対応はありません。要件上どうしても必須となる場合は特別対応の必要 があります。

PSU_temp_0522

19

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

5. 標準コマンドの対応状況 ƒ すべてのコマンドにおける日本語対応状況は確認していません。 ƒ システム上特に重要な、 viエディタ、grep、awk、sed等フィルター系コマンドを例に取る と、NLS(各国語サポート)を有効にしてコンパイルされており(RHEL4の場合)、UTF-8 またはEUC-JPの入力に対して、正しく漢字1文字を1文字と認識します。例えば、正規 表現の“.”(任意の1文字)が1バイト文字だけでなく、マルチバイトの漢字1文字とも正し くマッチします。また、 “[あ-ん]”といった正規表現(範囲指定)でも漢字が正しく認識さ れています。 ƒ 標準コマンドシェルであるbashも各コード系の入力をコマンドラインから受け付けます。 また、ワイルドカードも日本語に対応しています。例えば「あい」、「あき」、「あし」、「あい い」の4つのファイルが存在する状態で「あ?」(ファイル名の先頭が「あ」である、2文字 のファイル名)というワイルドカードをマッチさせると、正しく「あい」、「あき」、「あし」に マッチし「あいい」にはマッチしません。よって、「?」という任意の1文字のパターンがマ ルチバイトの漢字1文字に正しくマッチしていることがわかります。 ƒ wcコマンドでバイト数ではなくマルチバイト文字も含む文字数をカウントしたい場合は、 “-m”または“--chars”オプションを指定してください。

PSU_temp_0522

20

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

6. まとめ ƒ ファイル名に漢字等を使用する場合は使用するコード系の統一が必要です (仕様上は混在も可能ですが運用上不都合が多くなります)。 ƒ Linuxシステムの日本語ロケールにおいて利用可能な文字コード系はUTF-8 (ja_JP.UTF-8)、EUC-JP(ja_JP.eucJP)、もしくはShift JIS(ja_JP.SJIS)で す。ただし、ディストリビューションの既定文字コード系以外を利用する場合は、 何らかの設定作業が必要となり、ディストリビューションによってはサポート範 囲に制限があります。 ƒ 従来、機種依存文字と言われていた文字でも、そのうちのかなりをLinux自身 が持つフォントだけで描画できるようになっています。しかし、まだ対応は完全 でなく、描画できない文字が多数あります。業務上そのような文字の表示や 印刷が必須要件となっている場合は、商用TrueTypeフォントの追加導入を行 い、必要なすべての文字が問題なく利用できることを事前に検証する必要が あります。 ƒ 外字が必要な場合は特別な対応が必要になります。 ƒ 標準コマンドで日本語テキストの処理を行うことが必要な場合は事前にテスト ケースを作成して十分に検証することを強く推奨します。 PSU_temp_0522

21

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

7. よくある質問 (1) ƒ Red Hatの日本語ロケールのデフォルト文字コード系がUnicodeになったそ うですが、EUCはもうサポートされないのでしょうか? A. 【RHEL4/5】RHEL3までは日本語ロケールにおけるデフォルト文字コー ド系はEUCでしたが、RHEL4からUTF-8に変更されました。しかし、 EUCもロケールの文字コード指定を変更すれば利用できます。ただし、 ロケールの文字コード系を変更した場合、またそれに起因して生じた不 具合についてはRed Hatのサポートは提供されません。 http://www.jp.redhat.com/FAQ/support2.html#19 (19番の回答の末 尾に記述があります) 【SLES】yast2言語設定の詳細設定で文字コード系がUTF-8とEUCから 選択できます。Novell/SUSEではサポート提供条件として使用する文字 コード系に特に制限は設けていません。

PSU_temp_0522

22

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

7. よくある質問 (2)

PSU_temp_0522

23

ƒ システムのデフォルトロケールを変更するにはどうすればよいですか? A.【RHEL】英語⇔日本語など言語を切り替えるだけならredhat-configlanguage (RHEL3以前)またはsystem-config-language(RHEL4以 降)コマンドで変更できますが、これらのコマンドによる設定では文字コー ド系をデフォルト以外に変更できません。文字コード系を変更する場合は /etc/sysconfig/i18nファイルを直接編集する必要があります。変数 “LANG“の値を”ja_JP.UTF-8”(UTF-8の場合)、“ja_JP.eucJP”(EUC の場合)、“ja_JP.SJIS”(Shift JISの場合)に変更すると、文字コード系 がそれぞれに変更されます。 【SLES】yast2 languageで言語設定の変更が可能です。[Detail]ボタン を押すと、rootユーザーのロケール設定(rootはキャラクタコンソールを 使う場面も多いので、他のユーザーが日本語でもrootだけは英語環境だ と便利な場合があります)や、UTF-8を使うかどうかも設定可能です。 UTF-8を使わないことを選択するとEUC-JPになります。それ以外の文字 コード系を利用する場合は /etc/sysconfig/language ファイルを直接編 集します。 【共通】変更を反映させるには、ログインしているユーザーの範囲ならば ログインしなおせば良いですが、起動済みサービス等システム全体に反 映させるにはシステムを再起動するのが確実です。 IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

7. よくある質問 (3) ƒ 一時的にロケールを変更するにはどうすればよいですか? A.【共通】システム設定ではなくシェルのセッション内だけで一時的にロケー ルを変更したい場合は、コマンドライン上で“LANG=ja_JP.eucJP” (bash/kshの場合。cshの場合は“setenv LANG ja_JP.eucJP”)などと 入力して実行します。端末側(Gnome terminalやTeraTermなど)の文 字コードも忘れずに変更してください。 ƒ RHELの日本語ロケールでShift JISコードを利用したいのですが ja_JP.SJISと指定しても日本語manページや日本語ファイル名の表示など が文字化けします。何が問題なのでしょうか。 A.【RHEL】 【SLES9】デフォルトではja_JP.SJISロケールは存在しておらず、 利用不可能です。p.6の手順に従って新たに作成する必要があります。

PSU_temp_0522

24

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

7. よくある質問 (4) ƒ ロケール設定で文字コード系をEUCまたはShift JISに変更し、man コマンドで日本語manページを表示させると文字化けします。どうす ればよいですか? A.【RHEL】システム標準のlessコマンドがEUCやShift JISの漢字 コードを正しく認識しないのが原因です。/etc/man.configを編集 すればこの問題は回避できます。具体的な編集手順については p.5を参照してください。Shift JISの場合はロケールの作成も必要 です。詳細はp.6を参照してください。 【SLES】 SLESではこの問題は発生しません。 ƒ Linuxでファイル名に日本語を使用することはできますか? A.【共通】できます。ただし、ロケールの文字コードを作成したファイ ル名の文字コードに合わせないとlsコマンドやファイルブラウザで ファイル名を正常に表示することができません。 PSU_temp_0522

25

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

7. よくある質問 (5) ƒ

Linux上で日本語テキストを編集するにはどんなエディタが使えますか? A. 【共通】Emacs、viやgeditが使用できます。JIS X 0201とJIS X 0208の範囲の文字だけを取 り扱う分にはどれを使用してもなんら問題はありませんが、viやgeditはコード系の自動認識や コード系変換をサポートしませんので、ロケールで指定された文字コード系のファイルのみが 編集可能です。 機種依存文字を含むテキストを編集する場合には、下記のような点に注意してください。 【RHEL3/4】実験した範囲では、Emacsは、euc-japanやshift-jisといったコード系を指定して それぞれEUCやShift JISのファイルを開いた場合に機種依存文字(p.15~18を参照)は一切 表示できませんでした。viならばGnome terminalが表示できる文字はなんでも編集できます ので、機種依存文字を含むテキストの編集にはviの方が適していると言えます。geditもフォン トが対応している文字は表示・編集可能です。 【RHEL5】 RHEL5のEmacsでは、RHEL3/4と比較するとUTF-8も自動認識でき、UTF-8では 機種依存文字もかなり対応できるようになっています。ただし、EUC-JPファイルを開いた場合 ではNEC特殊文字以外の機種依存文字は全滅、Shift JISファイルの取り扱いでは、NEC特 殊文字以外の機種依存文字が含まれているとShift JISと認識されません。 【SLES9】 SLES9デフォルトのデスクトップ環境KDEの端末エミュレータKonsoleでは、機種 依存文字がほとんど表示できませんので、KDE環境下では機種依存文字を含むテキストの 編集は困難です。 【SLES10】デフォルトデスクトップ環境がGNOMEに変更になりましたので、機種依存文字も ○数字やローマ数字の大きさがそろっていない以外はほぼ問題なく表示できます。機種依存 文字を含むテキストファイルはviまたはgeditで編集可能です。

PSU_temp_0522

26

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

7. よくある質問 (6) ƒ WindowsでUSBメモリーキーやフロッピーディスクに日本語名のファイルを作成し、 Linuxでマウントするとファイル名が正しく表示されません。どうすればファイル名が正 しく表示されるようになりますか? A. 【共通】vfatファイルシステムのマウントオプションとして‘utf8’を指定するとファイ ル名をUTF-8文字列として扱えるようになります。詳細はp.10を参照してください。 【SLES】メディアをオートマウントする際にutf8が指定されてマウントされます。 ƒ LinuxでWindowsの機種依存文字は使用できますか? A. 【共通】Linuxのグラフィカルコンソールでの表示に関しては一部使用可能です。使 用可能な文字の詳細はp.15~18を参照してください。 なお、Windows用の市販 TrueTypeフォントを追加導入することで機種依存文字すべて描画可能となります。 ƒ Windows上で作成した日本語を含むテキストファイルをftpでLinuxに転送してviエ ディタで開くと文字化けすることがあります。これはなぜですか? A. 【共通】Linuxが対応していない機種依存文字を含んでいる可能性が考えられます。 また、機種依存文字を含むテキストをEUCやShift JISで保存したものをGnome terminal上で表示する際にも文字化けが見られることがあります。詳細はp.15~ 18およびp.19を参照してください。

PSU_temp_0522

27

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

Disclaimer ƒ この資料は、資料作成時における最新情報をご参考のために提供することを目的として記載されて おり、IBM は、情報の正確性、完全性または有用性について何ら保証するものではありません。ま た、内容は予告なしに変更または更新されることがあります。

ƒ この資料の内容は、特定の環境において一定の正確さは確認しておりますが、全ての環境で同一 の結果を保証するものではありません。お客様固有の環境に対し、適切であるかどうか、また、正確 であるかどうかは十分検証されていません。この資料の情報に基づき導入・設定を実施される場合 には、十分な検証テストを行ってください。また、予め各社より提供される情報および製品のマニュア ルをご覧ください。

ƒ 商標 – IBMは、International Business Machines Corporationの米国およびその他の国における商標。 – Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国に おける商標。 – LinuxはLinus Torvaldsの米国およびその他の国における登録商標または商標。 – X Window SystemはX Consortium Inc.の登録商標。 – UNIXはThe Open Groupの登録商標。 – その他の会社名、製品名およびサービス名等はそれぞれ各社の商標。 PSU_temp_0522

28

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

参考リンク集 ƒ Wikipedia – 「文字コード」 http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3 %83%BC%E3%83%89 – 「EUC-JP」

http://ja.wikipedia.org/wiki/EUC-JP – 「Microsoftコードページ932」

http://ja.wikipedia.org/wiki/CP932 – 「機種依存文字」

http://ja.wikipedia.org/wiki/%E6%A9%9F%E7%A8%AE%E4%BE%9D %E5%AD%98%E6%96%87%E5%AD%97 ƒ Microsoft Code Page 932 http://www.microsoft.com/globaldev/reference/dbcs/932.mspx

PSU_temp_0522

29

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


ビジネス・ユニットの名前

変更履歴 ƒ

2007/9/13 Ver.1.05 Disclaimerに商標について追加、本文テキストボックスの配置見直し、『本資料について』のス ライドを整理、ファイル名にバージョンを反映

ƒ

2007/9/12 Ver.1.03 テンプレート変更

ƒ

2007/9/7 Ver.1.02 Disclaimerの文言変更・ページ移動

ƒ

2007/8/24 Ver.1.01 FAQ集の質問とディストリビューション特有情報マーカーを色分け

ƒ

2007/8/24 Ver.1.0

PSU_temp_0522

30

IBM Corporation I 8/4/05

© 2007 IBM Corporation この文書のデータの利用または公開には、最終ページに記載されている制限事項が適用されます。


benkyou