Shift_JIS-2004とは
Shift_JIS-2004は、日本の文字を符号化するための
文字コードの一つで、
JIS X 0213規格に基づいて定められています。これは、従来のShift_JISを拡張したもので、より多くの文字を扱えるように設計されています。具体的には、
JIS X 0213で定義されている文字セット全体を符号化できることが特徴です。
Shift_JISとの関係
Shift_JIS-2004は、Shift_JISとの互換性を保ちつつ、
JIS X 0213の全文字を表現できるように拡張されています。Shift_JISと同様に、1バイト文字と2バイト文字を組み合わせて使用する方式を採用しています。
JIS X 0213は2つの面(第1面と第2面)を持っていますが、Shift_JIS-2004では第1面はShift_JISの範囲内に収まり、第2面を表現するために新たな領域が追加されています。
符号化の仕組み
Shift_JIS-2004では、
JIS X 0213の各文字を2バイトで表現します。面区点番号からShift_JIS-2004のバイト値を算出する際には、特定の計算式が用いられます。特に、第2面の文字を表現するために、第1バイトの範囲が拡張されています。
第1バイトの計算
面番号を m 、区番号を k とすると、第1バイト(s1)は以下の式で計算されます。
m = 1 かつ 1 ≦ k ≦ 62 のとき: s1 = ⌊(k + 257) / 2⌋
m = 1 かつ 63 ≦ k ≦ 94 のとき: s1 = ⌊(k + 385) / 2⌋
m = 2 かつ k が 1, 3, 4, 5, 8, 12, 13, 14, 15 のいずれかのとき: s1 = ⌊(k + 479) / 2⌋ − ⌊k / 8⌋ × 3
m = 2 かつ 78 ≦ k ≦ 94 のとき: s1 = ⌊(k + 411) / 2⌋
ここで、⌊⌋ は床関数(小数点以下切り捨て)を表します。
第2バイトの計算
点番号を t とすると、第2バイト(s2)は以下の式で計算されます。
k が奇数の場合:
1 ≦ t ≦ 63 のとき: s2 = t + 63
64 ≦ t ≦ 94 のとき: s2 = t + 64
k が偶数の場合:
s2 = t + 158
Windows-31Jとの非互換性
Shift_JIS-2004は、Windows-31Jとは互換性がありません。Windows-31Jは、Shift_JISをベースにしたマイクロソフト独自の拡張
文字コードであり、Shift_JIS-2004とは異なる文字の割り当てや符号化方法を使用しています。
歴史
JIS X 0213の初版(2000年)では、この符号化方式はShift_JISX0213と命名されていましたが、2004年の改正で追加されたUCS互換漢字10文字の有無を除いては、大きな違いがないためShift_JIS-2004と同一視されることもあります。
まとめ
Shift_JIS-2004は、
JIS X 0213の全文字を扱えるように拡張された
文字コードです。Shift_JISとの互換性を保ちつつ、より多くの文字を表現できます。しかし、Windows-31Jとの互換性がないため、使用する際には注意が必要です。
関連項目
Shift_JIS
EUC-JIS-2004
ISO-2022-JP-2004
JIS X 0213
JIS X 0213非漢字一覧
JIS X 0213漢字一覧の1面
JIS X 0213漢字一覧の2面
外部リンク
JIS X 0213の代表的な符号化方式
文字コード表 - 日本語 (シフト JIS) - shift_jis2004 - UIC