新漢字則
JIS X 0213:2004

Windowsで第3・4水準漢字を使うための方法をご紹介します
JIS X 0213:2004って何?
コンピューターで文字を取り扱うには、文字に番号をつけて管理します(20年以上前では単なるグラフィックを描画していたものもありましたが)。通信の世界では文字を番号で送るほうが、グラフィックで送るよりはるかに少ないデータ量ですみます。はるか昔の300BPS(1秒間に300ビット、漢字換算でおおよそ1秒間に15文字の送受信)の頃に誰も文字をグラフィックで送受信しようなんて考えませんよね。それに文字を番号で管理すると、データベースへの蓄積・参照・検索が容易になります。アウトラインフォントも番号で管理しているからできるのです。アメリカで生まれたコンピューターではEBCDICやASCIIという管理方法(コード体系)が使われていました。日本ではラテン系文字(いわゆるアルファベット)に比べはるかに文字数が増えます。そこでASCIIコードの各国拡張領域($80-$FF)を使用してJIS(日本工業規格)コードという独特の管理方法が長く使われています。
ところが漢字や慣例記号の全てをJISコードで管理することは非常に困難です。何故なら漢字の数は数えられない程多いためです。漢字は当然ですが手書きで発達してきました。中国から日本に渡って来る間に字体が変わったり、簡略化した異体字が一般的になったり、はたまたこれは漢字だ、いや違う、などと論議される程漢字の定義自身が難しいこともあります。文字は時代とともに変化していきます。これを共通の情報として定義しなければならないコンピュータでは問題がおこります。それでも使用頻度の高いものからJISコード化が行われたようです。この問題を論議することはこの空間の目的ではありませんので、興味のある方はこちらをご覧下さい。
JISコードも何度か改定されてきており、現在のJISコードはJIS規格のX 0213で規定されています。JIS X 0213はJIS X 0213:2000として2000年2月に初めて勧告され、現在は2004年2月には改訂版のJIS X 0213:2004が勧告されました。世界ではそれ以外にUnicodeと言う規格もあります。これは全世界で使われている文字の全てを一つのコード体系に収めようと言う壮大な構想です。しかし多くの問題を抱えており、まだまだ一般的とは言えません。LinuxはUnicode体系、WindowsやMACはシフトJISコード体系です。でもWindowsでも95/98/MeはシフトJIS、NT/2000/XPは入出力はシフトJISとUnicodeの二つで内部処理はUnicodeとごちゃごちゃです。
JIS X 0213:2004(以降'X0213'と略記)では、それまでのJIS X 0208:1990(以降'X0208'と略記)の6,937文字に4,296文字が加えられました。勧告は2004年2月に有効になったのですが、コンピューターメーカーはこれになかなか追従しません。その理由はおそらく、
- X0213に対応すると、それまで各メーカーが使っていた機種依存文字がそのままでは使えなくなる
- X0213に対応するためにはプログラムの改造やフォントの作成等の投資が必要だが、対応したことによるメリットはあまりない
- X0213に対応しなくとも、さほど問題視されていない(と思っている)
でしょう。Linuxの日本語処理はUnicodeで、X0213にOSレベルで対応する方向で開発が進んでいます。Vine Linux 2.6R1ではかなりの完成度でX0213に対応しています。WindowsではMicrosoftが出しているアプリケーションでも機種依存文字を使っていますので、X0213への対応はかなり大変のようです。インターネットブラウザでもまだX0213の文字はかなり表示できません。
Windowsの日本語入出力
Windowsが日本語を処理する場合、漢字変換、OS内部での処理、フォントによる画面出力があります。この処理は95/98/MeとNT/2000/XPでは違いがあります。Unicodeに完全対応のVine Linux 2.6R1も含めた日本語入出力は以下のようになります。

日本語の入出力を行うには日本語変換(辞書)とフォントが必要なことは明確なのですが、WindowsNT/2000/XPではさらにシフトJIS←→Unicodeの相互変換(Neutral Langurage System:NLS)も必要となります。どうして同じWindowsで2系統の処理が生まれたかと言うと、
- 元々Windows95はWindows3.1のリソースを活用して作られた。シフトJISを採用していたWindows3.1(ベースとなるMS-DOS)との互換性を保つためにWindows95はシフトJISを採用した。
- Windows98/Meは95の後継OSのため、シフトJISもそのまま採用した。
- WindowsNTは、Windows3.1とは全く違ったOSとして生まれた。その頃から多国言語対応を考慮したため、Unicodeを採用した。しかし、Windows3.1から漢字辞書やフォントを流用するため、入出力はシフトJIS、OS内部はUnicodeという複雑なシステムとなった。
- Windows2000/XPはWindows2000の後継OSのため、シフトJISとUnicodeの混在システムもそのまま採用した。
- ちなみに、Vine Linuxは過去との互換性は不要、かつLinuxは多国言語対応を初めから考慮したのでUnicodeを採用した。
別にシフトJISがダメでUnicodeが良い訳ではありません。Unicodeも発想が結構チャチなので、いろいろなところで不協和音が出ていることも確かです。私自身はNEC PC-8001、MS-DOS、Windows3.1、Windows95...とJIS系で進んできたので、DDTで作っているソフトではまだシフトJISしか考えていません。本気でLinuxをやり始めたらUnicodeも考えると思います。ちなみに10年以上前に仕事で使っていたUnixでは日本語は使えませんでした。
上記図からわかるように、X0213に対応するためには、
- 対応した漢字辞書(漢字変換システム)
- 対応したフォント
- Windows NT/2000/XPの場合は対応したNLS
が必要となります。対応フォントはフリー、商用共いくつかリリースされています。漢字変換辞書はユーザーレベルでも必要なものぐらいは登録できますが、やはり画数・読み・部首で引けるものが必要でしょう。さて、Microsoftは本気で対応するでしょうか?
NLSのX0213対応とはどういうことはピンとこないかもしれません。日本語Windows NT/2000/XPのNLSとはシステムフォルダ(デフォルトはC:\winnt\system32)にあるc_932.nlsというバイナリファイルです。932とは日本語コードページ番号です。このファイルがシフトJISとUnicodeの相互変換を行うのですが、普通の(X0213対応処理を行っていない)NLSはX0208にしか対応していません。困ったことにWindowsの機種依存文字には対応しています。c_932.nlsをX0213に対応させる手順は以前イオさんのホームページにありました(現在は閉じられています)。ただし、機種依存文字は使えなくなります。字そのものはあるようなので、使っているデータを変えればいいのですが、その他弊害もあります。
機種依存文字
X0208で規定されている文字以外を使うため、ハードウェアメーカー・ソフトウェアメーカーは独自の文字を定義しました。以前のワープロやキャラクタベースのOS(ライクなもの)、グラフィックベースのOS(Windows、MAC等)が便宜性を考えて追加したのですが、X0213にとってはやっかいな問題です。
機種依存文字とはハードウェア、ソフトウェアに依存する文字ですが、Windowsのようにかなり広まってしまうと、それが標準のように思われてしまいます。複数のコンピュータ間のデータのやり取り(メール、LAN、リムーバブルメディア経由等)に支障がなければ「問題なく使っているのに、何が依存文字だ!」と言われることもあるでしょう。しかし、世界中をインターネットで繋ぐことができる今日、異機種との文字のやり取りをする機会が増えることは当然です。機種依存文字も文字コードに空き領域ならまだしも、X0213と重複するコードもあります。X0213を使うなら、機種依存文字はきっぱりとあきらめざるを得ません。
Windowsの機種依存文字はこちら。
X0213で使える文字
X0213はX0208を含んでいます。X0208では第1・2水準に分けられていましたが、X0213では第3・4水準が追加されています。
水準 |
規格 |
勧告 |
内容 |
文字数 |
1 |
JIS X 0208 |
1990年 |
第1面16区-47区に割当て。シフトJISコード番号889F(16進)から9872(16進)。非漢字「 」〜「u」、漢字読み順に「亜」〜「腕」 |
3,543 (非漢字を含む) |
2 |
JIS X 0208 |
1990年 |
第1面48区-84区に割当て。シフトJISコード番号989F(16進)から9FFC(16進)とE040(16進)からEAA4(16進)。部首順に「弌」〜「熙」 |
3,390 (非漢字なし)
|
3 |
JIS X 0213 |
2004年 |
第1面14区,15区,84区-94区に割り当て。シフトJISコード番号879F(16進)から889D(16進)、EAA6(16進)からEFFC(16進)に(空き区あり)。非漢字「 」〜「 」、漢字部首順に「 」〜「 」 |
1,950 (非漢字含む)
|
4 |
JIS X 0213 |
2004年 |
第2面1区から94区(空き区あり)のコード番号F041(16進)からFCF4(16進)。漢字部首準に「 」〜「 」 |
2,436 (非漢字なし)
|
シフトJISコード文字一覧表はこちら(8040-8FFF、9040-9FFF、E040-EFFF、F040-FCFF )。
X0213を使用する準備
X0213を使用するために必要なものはフォントです。WindowsNT/2000/XPではコードページ変換テーブルの修正も必要です。
フォントの準備
Windowsに含まれる標準フォントはJIS X 0213:2004に対応していません。JIS X 0208:1990(第1・2水準)にほぼ対応しているのと、Windowsの依存文字を持っています。2004年12月1日現在、私の知る限りの対応フォントと入手先は以下の通りです。
フォント名 |
JIS対応 |
種類 |
特徴 |
入手先 |
Habian |
X 0213:2000 |
ビットマップ |
12ポイント倍数できれいでエディタ等に便利 |
VECTORソフトウェアライブラリ |
和田研細丸ゴシック20004 |
X 0213:2004 |
アウトライン |
希土類元素レアアースさんがつくられた数少ない2004対応 |
希土類元素レアアースさんのフォント集 |
和田研細丸ゴシック2000P4 |
X 0213:2004 |
アウトライン |
希土類元素レアアースさんがつくられた数少ない2004対応 |
希土類元素レアアースさんのフォント集 |
XANO明朝フォント |
X 0213:2004 |
アウトライン |
内田 明さんが「フォント権利使用許諾契約」に基づいて作成 |
内田 明さんのHP |
JIS X 0213:2000に対応して0213:2004に未対応の文字は「〓」と表示されます。)
(2004年10月31日現在Kandata、Kandata3、拡張Watanabe明朝、拡張Watanabe明朝-L、クワクチヤウワタナベ和田研明朝、クワクチヤウワタナベ和田研明朝Lはダウンロード不可となっています。)
コードページ変換テーブルの修正
WindowsNT/2000/XPではシフトJISとUnicodeの相互変換テーブル(コードページ変換テーブル)をJIS X 0213:2004に対応させる必要があります。Windowsの日本語入出力でも述べたように機種依存文字は使えませんし、様々な弊害もあります。よく検討の上、コードページ変換テーブルの修正を行ってください。
WindowsNTのコードページ変換テーブルの修正プログラムは以前イオさんが公開されていましたが、今は閉じられて入手不可能です。イオさんご本人には直接承認いただけませんが、多くのコードページ変換テーブル修正プログラム入手のリクエストと、コードページ変換テーブル修正プログラムに書かれていたreadme.txtに書かれている「イオの「Windows 9x/NT を JIS X 0213 対応にするパッチ」のソースを流用した」と記載する」の条件を守ればよいと判断し、ここに再配布させて頂きます。プログラムを私の開発環境で再構築すればよいのですが、イオさんの開発言語のVC++を私の開発言語のBCBにプログラムを読みながら作るにはまだまだ時間が必要です。今はイオさんから頂いたプログラムをそのまま載せさせて頂きます。
JIS X 0213:2000にNLSを対応済みの場合は、元々(JIS X 0208:1990対応のインストール時標準のコードページ変換テーブル(c_932.nls))を基準に以下の変換作業を行ってください。
修正手順は、
- 以下の修正手順が理解できなければ、修正は諦める。
- 使用しているOSがWindowsNT/2000/XPであることを確認。Windows95/98/Meは以下の修正は不要。
- VC++のラインライムライブラリMFC42.DLLとMSVCRT.DLLがOSにあることを確認。なければVector等から入手しておく。
- 作業フォルダを作って、Windowsシステムフォルダ(標準ではC:\winnt\system32)のc_932.nlsというファイルをコピー(誤っても移動や削除しないこと。システムフォルダにc_932.nlsがなくなると、最悪OSが立ち上がらなくなる)。
- コピーしたc_932.nlsをc_9322元.nlsにリネーム。
- WindowsNTのコードページ変換テーブルの修正プログラムを上記作業フォルダにダウンロードして、解凍。
- win0213.exeと必要なjisx0213code-csv.txtが解凍されたことを確認。
- 解凍して出来上がったwin0213.exeを実行。

- 「JIS X 0213 CSVファイル」にjisx0213code-csv.txtが入っていることを確認。
- 「Windows NT NLSファイル」グループの「オリジナルNLSファイル」にc_9322元.nlsが入っていることを確認。
- 「Windows NT NLSファイル」グループの「変換後NLSファイル」にc_9322.nlsが入っていることを確認。
- 「Windows NT NLSファイル」グループの「変換」ボタンを押す。ここでエラーが発生した場合は以下の修正を諦める。
- win0213.exeを終了して、出来上がったc_9322.nlsをWindowsシステムフォルダ(標準ではC:\winnt\system32)のc_932.nlsというファイルに上書き。
- OSを再起動。
です。最後まで問題が無ければ、無事OSはJIS X 0213:2004に対応しました。
コピー・リネームしたNLSファイルを元のWindowsシステムフォルダに戻せば、逆にJIS X 0213:2004非対応に戻すこともできます。
jisx0213code-csv.txtの種類について
希土類元素レアアースさん提供のパッチのためのマッピングデータには以下の2種類あります。
- 現在のファイルの仕様のまま、JIS X 0213-2004での追加文字を加えたもの。Windowsとの互換を重視する場合に使用→UpdateTo2004/jisx0213code-csv.txt
- 現在のファイルの仕様を変更し、Windows互換ではなくシフトJIS2004規格上のマッピングから'¥'と' ̄'のマッピングのみ変更したもの。MACやUnixとの互換を重視する場合に使用→2004Mapping/jisx0213code-csv.txt
どちらを使用するかは、利用される環境により判断してください。
UpdateTo2004/jisx0213code-csv.txtを使用すると、以下の2組が同じUnicodeにマッピングされてしまいます。
シフトJIS |
シフトJIS |
文字 |
8160 |
81B0 |
|
8161 |
81B2 |
|
X0213対応の弊害
機種依存文字を使ったドキュメントの変更
これまでに機種依存文字を使って作成されたドキュメントを全てX0213用に変更する必要があります。自動的に変更してくれるプログラムはありません。また、外字を使ったドキュメントも同じです。変更は全て手作業となります。
アプリケーションのX0213対応
他人が作ってプログラムソースを入手・再構築できない場合、間違いなくアプリケーションをX0213に対応させることは不可能です。プログラムをバイナリレベルで修正することはいわゆるリバースエンジニアリングですから犯罪です。自分が作ったプログラムならX0213の修正は簡単です。しかしX0213に未対応のOSで使用すると、表示がおかしくなります。
メール、ホームページのX0213対応
メールやホームページで機種依存文字を使うこと自身がネチケットに反していますので、あえて弊害と言うこともないでしょう。X0213文字も機種依存文字同様、送受信にはなんら問題はおこりません。要は表示がおかしくなるだけです。ホームページでX0213文字を使用するとNLSとフォントがX0213に対応していればInternet Exploler(5.5/6.0で確認)で表示できます。ただし、見る人がX0213対応とは限りませんし、他のブラウザでは未確認ですからX0213対応でホームページを作成することは避けたほうが無難です。
プリンタ出力のX0213対応
プリンタもほぼX0213は出力されないと考えたほうが良いでしょう。コードページ変換テーブルを修正しても、プリンタドライバがX0213に対応しないと正しく文字は出力されません。
X0213対応のまとめ
自分の名前がコンピュータに入出力できないのは嫌なものです。でも、あらゆる文字をコンピューターで符号化することは現実的には無理です。文字は絵から始まって、抽象化や組み合わせや省略を重ねながら現在の形や区分に発展してきたものです。コンピューターが文字を取り扱うなんて、まだ50年にも満たない歴史ですし、文字という一種曖昧なものを全てコンピュータというゼロイチの世界に全て取り込むなんて所詮無理でしょう。お互いに譲歩することも必要かな、と思う今日この頃です。
WindowsNT/2000/XPをX0213対応に変更することは、あくまでも個人の責任で行ってください。私やX0213に関わっている全ての人たちは一切責任は取りません。ではX0213をご堪能ください。
ソフトウェア工房に戻る
トップに戻る