EUC-JIS-2004
[カテゴリ:仕様]
EUC-JIS-2004は、JIS X 0213の符号化方式のひとつであり、JIS X 0213とASCIIを同時に運用するものです。JIS X 0213の附属書3で定義されています。EUC-JPからJIS X 0212補助漢字を除いたものに対して上位互換となっています。EUC-JPの実装には補助漢字をサポートしていないことがよくあるので、多くの場合は単にEUC-JPの上位互換とみなせます。
符号の構造
最上位ビットが0になっているバイト(つまり0x7F以下のバイト)は、常にASCIIの文字を表します。
0xA1から0xFEまでの範囲は2バイトでJIS X 0213の漢字集合1面の文字を表します。ただし、直前に0x8Fを付けると、2バイトで漢字集合2面の文字を表します。
漢字集合1面・2面どちらの文字も、JIS X 0213で定義されているコード(ビット組合せ)の各バイトに最上位ビット1を付けて表します。Shift_JIS-2004のように計算で変形したりはしません。
0x8Eの直後1バイトは、最上位ビットを1にした状態でJIS X 0201片仮名集合の文字を表します。
実装
プログラミング言語のPython, Ruby, PHP, コード変換プログラムのiconv, nkf, テキストエディタのGNU Emacs等はこの符号化方式に対応しています。
Emacs上の日本語入力プログラムSKKではJIS第3第4水準漢字辞書が整備されていますが、その辞書ファイルにはEUC-JIS-2004が使われています。
また、全国1万以上の医療施設で使われている日医標準レセプトソフトでは内部的にEUC-JIS-2004が使われているとのことです。
コード変換例
例えば、MacのコマンドラインやWindowsのCygwinでiconvを使ってUTF-8との間でコード変換するには下記のようにします。文字コード名「EUC-JISX0213」によってEUC-JIS-2004を指定できます。
iconv -f UTF-8 -t EUC-JISX0213 < utf8.txt > euc.txt
これによってUTF-8のファイルutf8.txtをEUCにコード変換してファイルeuc.txtに書き出します。変換方向を逆にするには -f と -t の指定を入れ替えます。EUCとUTF-8の間で変換するには、常にこのやり方を用いるのが適当です。これはWindowsの実装にある波ダッシュ問題を引き起こさず、また丸付き数字やローマ数字を救済できます。EUCのコード変換には常にこれを用いるのがおすすめです。
名称について
EUC-JIS-2004という名称になったのはJIS X 0213:2004においてです。規格初版のJIS X 0213:2000では、EUC-JISX0213という名称でした。
iconvでは、EUC-JISX0213の名前でこの符号化方式に対応しています。Ruby 2.0では "EUC-JP-2004" という名前で登録されています。Ruby 2.1.3では "EUC-JIS-2004" に修正されたそうです(参考: Ruby 2.1 で EUC-JIS-2004 の名前が修正)。
他の符号化方式との関係
この符号化方式は、規格本体で定義されている「国際基準版・漢字用8ビット符号」にJIS X 0201片仮名を追加したものです。この片仮名集合はEUC-JIS-2004では原則として使用しないことになっているので、その原則を適用すれば実質的に「国際基準版・漢字用8ビット符号」と同じになります。
参考
- JIS X 0213の代表的な符号化方式
- JIS X 0213のコード対応表 - Unicodeとの機械可読形式の変換表があります
関連項目
- EUC-JP - JIS X 0208の対応する符号化方式
- JIS X 0213 - 元になっている規格
- Shift_JIS-2004 - 本符号化方式と同様のJIS X 0213の符号化方式の一種
- ISO-2022-JP-2004 - 本符号化方式と同様のJIS X 0213の符号化方式の一種
- 国際基準版・漢字用8ビット符号
最終更新時間:2016年11月26日 12時42分08秒