日本語を扱える文字コードにはメジャーなものでUTF-8, Shift_JIS, EUC-JP, UTF-16, ISO-2022-JP(JIS)などがあります。 近年UTF-8を使う傾向が強まっていますが、今でもShift_JISは多用されています。 ところがこの「Shift_JIS」にはいくつかバリエーションがあります。
Shift_JIS系の1バイト文字は、以下のようになっています。00~1F, 7Fは制御文字、20~7Eはアスキー文字です (SPACEはアスキー文字としても制御文字としても扱われることがあります)。 ここはUTF-8でもEUC-JPでもJISでも共通です。 A1~DFは半角カナが割り当てられています。半角カナを(エスケープシーケンス無しで) 1バイトで表現できるのはShift_JIS系文字コードの特徴です。
下位4ビット | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
上 位 4 ビ ッ ト | 00 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI | |
10 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US | ||
20 | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | ||
30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | ||
40 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | ||
50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ | ||
60 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | ||
70 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL | ||
80 | ||||||||||||||||||
90 | ||||||||||||||||||
A0 | 。 | 「 | 」 | 、 | ・ | ヲ | ァ | ィ | ゥ | ェ | ォ | ャ | ュ | ョ | ッ | |||
B0 | ー | ア | イ | ウ | エ | オ | カ | キ | ク | ケ | コ | サ | シ | ス | セ | ソ | ||
C0 | タ | チ | ツ | テ | ト | ナ | ニ | ヌ | ネ | ノ | ハ | ヒ | フ | ヘ | ホ | マ | ||
D0 | ミ | ム | メ | モ | ヤ | ユ | ヨ | ラ | リ | ル | レ | ロ | ワ | ン | ゙ | ゚ | ||
E0 | ||||||||||||||||||
F0 |
1バイト文字として使っていないのは、表中の黄色の部分の80~9FとE0~FFの範囲です。 この範囲のコードに2バイト文字の1バイト目を割り当てました。 そして特に、889F~9872の範囲にJIS第一水準漢字、989F~EAA4の範囲にJIS第二水準漢字を割り当てました。 ここまではすべてのShift_JIS系文字コードで共通です。
Shift_JIS拡張を拡張した文字コードでは、黄色の部分のうちJIS第一・二水準漢字を割り当てた範囲以外に、 それぞれ独自に文字を割り当てました。ですので、Shift_JIS系の文字コードの違いを知りたければこの部分だけに着目すればいい事になります。
Shift_JIS系の文字コードは大きく分けると、現在でも広く利用されているものは2つ、 ほとんど(あるいは全く)使われていないものも含めると、分類の仕方によって4~9あります(個人的見解)。
# | 分類 | 備考 | 呼び名・別名・派生 | 時期 |
---|---|---|---|---|
#1 | Shift_JIS | 純粋なShift_JIS。現在でもしばしば使われる。アスキーやマイクロソフトなどが中心となり1982年に策定した。 「JIS X 0208:1997 付属書1 シフト符号化表現」で正式に規定。「Shift_JIS」は IANA(アイアナ)に登録されている。 | Shift_JIS, csShiftJIS, MS_Kanji, SJIS, (最初の)CP932, shift-jis, x-sjis | 1982 |
#2 | 「純粋なShift_JIS」に、09~13区にNEC特殊文字・89~92区にNEC選定IBM拡張文字 を加えたShift_JIS。 マイクロソフト標準Shift_JIS誕生後はほとんど使われなくなったため、単独の文字コードとして数えないこともある。 | PC-9800仕様OEM コードページ932 | 1983 | |
#3 | 「純粋なShift_JIS」に、115~119区にIBM拡張文字を加えたShift_JIS。複数のバージョンがある。 マイクロソフト標準Shift_JIS誕生後はほとんど使われなくなったため、単独の文字コードとして数えないこともある。 | CP942, CP942C, CP943, CP943C x-IBM942, x-IBM942C, x-IBM943, x-IBM943C, IBMのコードページ932 | 1983 | |
#4 | Windows 3.1 (J) のリリースに合わせて、マイクロソフトが作成した。 「純粋なShift_JIS」に、NEC特殊文字の13区のみとNEC選定IBM拡張文字とIBM拡張文字を加えたShift_JIS。 実質的に最も多く使用されている。「Windows-31J」は IANAに登録されている。 | Windows-31J, csWindows31J, MS932, SJIS-win, CP932, Microsoft コードページ 932, PC 漢字コード, PCK | 1993 | |
#5 | アップルが「純粋なShift_JIS」に、09~15区の範囲に独自に拡張したShift_JIS。 他のShift_JIS系の文字コードとの互換性は考慮されておらず、縦書き用の記号や指差し記号など独創的な文字も登録されている。 Mac OSのバージョン 7.1 ~ 9.xでサポートされた。「丸数字・括弧囲み文字・単位(①⑴㈱㌍㌢㎏)」など MS932の拡張で最もよく使う13区のとの互換性はなく、使い勝手が悪い。 | Mac OS Japanese, MacJapanese, x-Mac-Japanese, MacTEC, SJIS-mac | 1991 | |
#6 | JIS X 0213ベースの拡張Shift_JIS。JIS X 0213で定められた第3・第4水準漢字を正式にサポートしたShift_JIS。 「丸数字・括弧囲み文字・単位(①⑴㈱㌍㌢㎏)」などMS932の拡張で最もよく使う13区のとの互換性を保った一方で、 NEC選定IBM拡張文字とIBM拡張文字領域は独自に割り振っており、その部分との互換性がない。 Mac OS Xでサポートされた。Shift_JISX0213は2000年に制定。2004年に10文字追加する改訂が行われShift_JIS-2004とした。 | Shift_JISX0213, Shift_JIS-2004 | 2000, 2004 | |
#7 | docomo独自拡張Shift_JIS | NEC独自拡張Shift_JISをさらに携帯電話会社各社がそれぞれ独自に拡張し、絵文字や記号を割り当てたShift_JIS。 ガラケー全盛期には各社ユーザーに広く使われていたものの、おおむね同一キャリア同士のメールでしか使われない文字コードだったため、 それぞれを単独の文字コードと数えることは稀である。 | SJIS-Mobile#DOCOMO, SJIS-DOCOMO | 1997~ |
#8 | au独自拡張Shift_JIS | SJIS-Mobile#KDDI, SJIS-KDDI | ||
#9 | SoftBank独自拡張Shift_JIS | SJIS-Mobile#SOFTBANK, SJIS-SOFTBANK |
ざっくりいうと、Shift_JISがNECやIBMなどによって独自拡張され、 後にマイクロソフトがメジャーなNECとIBMの拡張を一つにまとめて、それが広く使われるようになりました。 #2, #3, #5~9ともに、今後新たに作成するシステムであえて利用することはまずないと思います。
Java7では、Shift_JIS系の文字エンコーディングは以下がサポートされています。
java.nio API 用の正準名 | java.io API と java.lang API 用の正準名 | 説明 | 備考 |
---|---|---|---|
Shift_JIS | SJIS | Shift-JIS、日本語 | #1 |
windows-31j | MS932 | Windows 日本語 | #4 |
x-IBM942 | Cp942 | IBM OS/2 日本語、Cp932 のスーパーセット | #3 |
x-IBM942C | Cp942C | Cp942 の拡張機能 | #3 |
x-IBM943 | Cp943 | IBM OS/2 日本語、Cp932 および Shift-JIS のスーパーセット | #3 |
x-IBM943C | Cp943C | Cp943 の拡張機能 | #3 |
x-PCK | PCK | Solaris 版の Shift_JIS | #4とほぼ同じ。ただしユーザー定義外字は使用できない |
x-SJIS_0213 | x-SJIS_0213 | Shift_JISX0213, Shift_JIS-2004 | #6 |
Javaでは「Shift_JIS」の取り扱いに迷走がありました。
バージョン | SJISコンバータ | MS932コンバータ | コメント |
---|---|---|---|
Java1.1.7 まで | SJIS, Shift_JIS | なし | 「Shift_JIS」は「SJIS」のエイリアスだった。「MS932」は存在しなかった |
Java1.1.8~1.4.0 | SJIS | MS932, Shift_JIS | 「MS932」が追加され、「Shift_JIS」は「MS932」のエイリアスに変更された |
Java1.4.1以降 | SJIS, Shift_JIS | MS932 | 「Shift_JIS」は「SJIS」のエイリアスに変更された |
Java1.1.8以降で「Shift_JIS」が「MS932」のエイリアスに変更されたときには、 「Shift_JIS」を使っていた場合でも指し示す内容が変わったものの 使える文字が増えただけなので、問題は顕在化しませんでした。
しかしJava1.4.1以降で、「Shift_JIS」が「MS932」のエイリアスから「SJIS」のエイリアスに変更されたときには、 「Shift_JIS」が扱える文字の範囲が小さくなったため、それまで使っていた文字が表示できなくなる現象が多発し問題になりました。
「SJIS」や「MS932」を使っている限りは問題はないのですが、「Shift_JIS」を使った場合にだけ問題が発生しうる気づきにくい現象です。 「純粋なShift_JIS」を使うことは少ないでしょうから、Javaで「Shift_JIS系文字コード」を使う際には 「MS932」(もしくは「Windows-31J」)を明示的に指定するようにしましょう。
PHP5.4.0以降では、Shift_JIS系の文字エンコーディングは以下がサポートされています。
エイリアス | 説明 | 備考 | |
---|---|---|---|
SJIS | Shift_JIS, x-sjis, SHIFT-JIS | Shift-JIS、日本語 | #1 |
SJIS-win | SJIS-open, SJIS-ms | Windows 日本語 | #4 |
SJIS-mac | MacJapanese, x-Mac-Japanese | #5 | |
SJIS-2004 | SJIS2004, Shift_JIS-2004 | #6 | |
SJIS-Mobile#DOCOMO | SJIS-DOCOMO, shift_jis-imode, x-sjis-emoji-docomo | #7 | |
SJIS-Mobile#KDDI | SJIS-KDDI, shift_jis-kddi, x-sjis-emoji-kddi | #8 | |
SJIS-Mobile#SOFTBANK | SJIS-SOFTBANK, shift_jis-softbank, x-sjis-emoji-softbank | #9 |
Shift_JIS系の文字一覧イメージを示します。文字コード間の差を直感的に理解しやすいように、 2バイト文字の範囲について8文字毎にピックアップしたざっくりとした一覧を作りました。
ちなみに、一覧はJavaでプログラムを作成し、Java8でコンパイル・実行しました。 そのため「Shift_JIS」「CP942C」「MS932」の一覧表は、あくまでもJava8での実行結果に過ぎず 他の環境で同一の結果を保証するものではありません。
1バイト目の下位4ビット | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
1 バ イ ト 目 の 上 位 4 ビ ッ ト | 80 | 01-02区:記号 | 03区:数字・ローマ字 04区:ひらがな | 05区:カタカナ 06区:ギリシャ文字 | 07区:キリル文字 08区:罫線 | 09-10区:割当て無 | 11-12区:割当て無 | 13区:NEC特殊文字 14区:割当て無 | 15区:割当て無 16区:第一水準漢字 | 17-18区:第一水準漢字 | 19-20区:第一水準漢字 | 21-22区:第一水準漢字 | 23-24区:第一水準漢字 | 25-26区:第一水準漢字 | 27-28区:第一水準漢字 | 29-30区:第一水準漢字 | ||
90 | 31-32区:第一水準漢字 | 33-34区:第一水準漢字 | 35-36区:第一水準漢字 | 37-38区:第一水準漢字 | 39-40区:第一水準漢字 | 41-42区:第一水準漢字 | 43-44区:第一水準漢字 | 45-46区:第一水準漢字 | 47区:第一水準漢字 48区:第二水準漢字 | 49-50区:第二水準漢字 | 51-52区:第二水準漢字 | 53-54区:第二水準漢字 | 55-56区:第二水準漢字 | 57-58区:第二水準漢字 | 59-60区:第二水準漢字 | 61-62区:第二水準漢字 | ||
E0 | 63-64区:第二水準漢字 | 65-66区:第二水準漢字 | 67-68区:第二水準漢字 | 69-70区:第二水準漢字 | 71-72区:第二水準漢字 | 73-74区:第二水準漢字 | 75-76区:第二水準漢字 | 77-78区:第二水準漢字 | 79-80区:第二水準漢字 | 81-82区:第二水準漢字 | 83-84区:第二水準漢字 | 85-86区:割当て無 | 87-88区:割当て無 | 89-90区:NEC選定IBM拡張文字 | 91-92区:NEC選定IBM拡張文字 | 93-94区:割当て無 | ||
F0 | 95-96区:ユーザー定義外字 | 97-98区:ユーザー定義外字 | 99-100区:ユーザー定義外字 | 101-102区:ユーザー定義外字 | 103-104区:ユーザー定義外字 | 105-106区:ユーザー定義外字 | 107-108区:ユーザー定義外字 | 109-110区:ユーザー定義外字 | 111-112区:ユーザー定義外字 | 113-114区:ユーザー定義外字 | 115-116区:IBM拡張文字 | 117-118区:IBM拡張文字 | 119区:IBM拡張文字 120区:割当て無 | 121-122区:割当て無 | 123-124区:割当て無 | 125-126区:割当て無 |
1バイト目の下位4ビット | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
1 バ イ ト 目 の 上 位 4 ビ ッ ト | 80 | ? ̄々~ ”}』÷∴ $§□→ ∈∧ ≒∬Å | 19A IQYh pxあおげ ずぢなひぺ もりを | ァォケスチ ドパベムヨ ヰΒΚΣ βκσ | АЗПЧЯ азоц ю│┴┣ ┷ | 唖葵芦 虻安以威畏 謂郁芋引 | 院羽臼厩荏 栄英悦園沿 艶汚旺鴎臆 穏佳科禍華 霞芽解恢 | 魁芥咳街柿 撹角岳橿活 叶釜刈勘寛 敢澗簡諌韓 癌願嬉旗 | 機稀輝宜義 吃却休朽笈 巨鋸侠卿恐 矯饗曲巾筋 金玖愚串 | 掘粂訓傾形 敬継警劇決 倹堅権肩顕 減限己糊鈷 呉瑚交効 | 后工恒更港 紘膏郊項壕 告腰頃昏魂 査座妻災菜 財崎昨鮭 | 察皐傘珊餐 刺姿支死肢 諮侍滋耳鴫 失実縞社借 錫手酒綬 | 宗秋襲醜汁 宿術駿準処 署序匠妾床 昇沼省紹証 鐘剰条醸 | |||||
90 | 拭食娠森秦 辛壬靭逗粋 瑞据摺勢晴 精逝席籍切 説占栓煽 | 繊践善噌疏 蘇叢匝操争 草遭蔵捉族 尊詑楕岱滞 隊題択諾 | 叩辿単湛蛋 檀恥遅逐宙 註著帳暢腸 頂賃鎚漬坪 亭定挺艇 | 邸滴撤店伝 塗菟度凍嶋 盗祷蕩鐙堂 萄涜栃寅豚 内楢汝虹 | 如禰捻嚢覗 派廃肺楳蝿 柏曝箱畑伐 蛤搬畔頒蛮 扉碑避枇 | 鼻菱姫氷描 鰭頻富斧譜 武葺腹物焚 丙並癖片娩 歩戊呆抱 | 法蓬鳳帽冒 防朴堀摩毎 鱒迄蔓蜜眠 椋迷綿孟木 籾冶役鑓 | 諭幽猶郵輿 揺用踊沃来 乱利裏葎硫 虜梁諒厘鱗 伶苓歴漣 | 蓮路榔蝋倭 鷲湾 丐乖于 从仟佇侑俘 倨倩會傀 | 僉僣儕儿兪 冑冪凅凰刪 剞劍劬勣匆 匣丗卻厰叮 吭呵咀咥 | 咫唏啀唸啻 喇嗔噎噫嚠 嚼囗國圷垈 垪埖塋墟壓 壟夊夸奢 | 奸姨娜婢嫣 嬋孅孰它寤 寳尨屏岑峅 嶌崑嵎嶢巉 巵幄幤廁 | 廖廩弃弭彖 徂徘忸怙怦 恊恫悛惠慍 愃愨慂慴憙 憫懆懺戉 | 戞扎抉拗拜 拮挾捶捩揶 攝攪擒舉擴 攤畋敲斷旙 杳晁晰曁 | 曄曰霸杞杼 柯柝栞梳梭 梵椈棧棹棆 楮楝槓榧槨 樅櫁橇檍 | 檗櫞蘖盜歔 殄殫毋麾汕 汾沽泛洽涓 涅淆淙渙湍 游溯溟滲 | ||
E0 | 漾潯澑濆濮 濾瀾炬烙煦 熕燔燿爲牴 犧狢猜獎獵 珥琲瑩璧 | 瓠瓸甕畊畫 疉疳痊痼瘉 瘰癢癶皖皺 盧眤睚瞎瞿 矜礪碣碾 | 磧礬祓禮秡 禀穡窗窶竏 竦笘笄筧箍 篋簑篳簟籀 籵粨糅糲 | 紂紿絮綛總 緝縣繆縲繹 辮纔罌罟羃 羣翅翳耙聒 聰肛胙脛 | 隋腥膠膵臍 臧舊艀艢艾 苣苻茴茯莢 荳菎菠菻蒭 萵蒻蓿蓼 | 蕁薊蕷藕藾 乕蚪蛉蛟蛻 蜷蝌蝣螽蟆 蟶蠡衒衵袙 裄裴褞褸 | 襦覃覬觜訌 詆誄諄諤謌 謳譏譬讓豌 貂貘貶賻齎 赳跖跼蹂 | 蹇踪躅躪軈 輊輛輾轢辷 逅逖遐遞邁 邵鄲酳醪釐 鈞鉅銜鋩 | 錙鍠鎹鏐鐐 鑄鑵閂閠闊 關陂陟險隹 雕霏霾靤靼 鞨韋頏顏 | 顱飃餘餽饒 馼駱騙騾驤 髏髦鬆鬨魏 鮑鯊鯤鰔鰄 鰲鳧鴪鵁 | 鵝鶇鷄鷙鸛 麌麪黜黴鼈 齔齪槇 | |||||||
F0 |
1バイト目の下位4ビット | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
1 バ イ ト 目 の 上 位 4 ビ ッ ト | 80 | ? ̄々~ ”}』÷∴ $§□→ ∈∧ ≒∬Å | 19A IQYh pxあおげ ずぢなひぺ もりを | ァォケスチ ドパベムヨ ヰΒΚΣ βκσ | АЗПЧЯ азоц ю│┴┣ ┷ | 唖葵芦 虻安以威畏 謂郁芋引 | 院羽臼厩荏 栄英悦園沿 艶汚旺鴎臆 穏佳科禍華 霞芽解恢 | 魁芥咳街柿 撹角岳橿活 叶釜刈勘寛 敢澗簡諌韓 癌願嬉旗 | 機稀輝宜義 吃却休朽笈 巨鋸侠卿恐 矯饗曲巾筋 金玖愚串 | 掘粂訓傾形 敬継警劇決 倹堅権肩顕 減限己糊鈷 呉瑚交効 | 后工恒更港 紘膏郊項壕 告腰頃昏魂 査座妻災菜 財崎昨鮭 | 察皐傘珊餐 刺姿支死肢 諮侍滋耳鴫 失実縞社借 錫手酒綬 | 宗秋襲醜汁 宿術駿準処 署序匠妾床 昇沼省紹証 鐘剰条醸 | |||||
90 | 拭食娠森秦 辛壬靭逗粋 瑞据摺勢晴 精逝席籍切 説占栓煽 | 繊践善噌疏 蘇叢匝操争 草遭蔵捉族 尊詑楕岱滞 隊題択諾 | 叩辿単湛蛋 檀恥遅逐宙 註著帳暢腸 頂賃鎚漬坪 亭定挺艇 | 邸滴撤店伝 塗菟度凍嶋 盗祷蕩鐙堂 萄涜栃寅豚 内楢汝虹 | 如禰捻嚢覗 派廃肺楳蝿 柏曝箱畑伐 蛤搬畔頒蛮 扉碑避枇 | 鼻菱姫氷描 鰭頻富斧譜 武葺腹物焚 丙並癖片娩 歩戊呆抱 | 法蓬鳳帽冒 防朴堀摩毎 鱒迄蔓蜜眠 椋迷綿孟木 籾冶役鑓 | 諭幽猶郵輿 揺用踊沃来 乱利裏葎硫 虜梁諒厘鱗 伶苓歴漣 | 蓮路榔蝋倭 鷲湾 丐乖于 从仟佇侑俘 倨倩會傀 | 僉僣儕儿兪 冑冪凅凰刪 剞劍劬勣匆 匣丗卻厰叮 吭呵咀咥 | 咫唏啀唸啻 喇嗔噎噫嚠 嚼囗國圷垈 垪埖塋墟壓 壟夊夸奢 | 奸姨娜婢嫣 嬋孅孰它寤 寳尨屏岑峅 嶌崑嵎嶢巉 巵幄幤廁 | 廖廩弃弭彖 徂徘忸怙怦 恊恫悛惠慍 愃愨慂慴憙 憫懆懺戉 | 戞扎抉拗拜 拮挾捶捩揶 攝攪擒舉擴 攤畋敲斷旙 杳晁晰曁 | 曄曰霸杞杼 柯柝栞梳梭 梵椈棧棹棆 楮楝槓榧槨 樅櫁橇檍 | 檗櫞蘖盜歔 殄殫毋麾汕 汾沽泛洽涓 涅淆淙渙湍 游溯溟滲 | ||
E0 | 漾潯澑濆濮 濾瀾炬烙煦 熕燔燿爲牴 犧狢猜獎獵 珥琲瑩璧 | 瓠瓸甕畊畫 疉疳痊痼瘉 瘰癢癶皖皺 盧眤睚瞎瞿 矜礪碣碾 | 磧礬祓禮秡 禀穡窗窶竏 竦笘笄筧箍 篋簑篳簟籀 籵粨糅糲 | 紂紿絮綛總 緝縣繆縲繹 辮纔罌罟羃 羣翅翳耙聒 聰肛胙脛 | 隋腥膠膵臍 臧舊艀艢艾 苣苻茴茯莢 荳菎菠菻蒭 萵蒻蓿蓼 | 蕁薊蕷藕藾 乕蚪蛉蛟蛻 蜷蝌蝣螽蟆 蟶蠡衒衵袙 裄裴褞褸 | 襦覃覬觜訌 詆誄諄諤謌 謳譏譬讓豌 貂貘貶賻齎 赳跖跼蹂 | 蹇踪躅躪軈 輊輛輾轢辷 逅逖遐遞邁 邵鄲酳醪釐 鈞鉅銜鋩 | 錙鍠鎹鏐鐐 鑄鑵閂閠闊 關陂陟險隹 雕霏霾靤靼 鞨韋頏顏 | 顱飃餘餽饒 馼駱騙騾驤 髏髦鬆鬨魏 鮑鯊鯤鰔鰄 鰲鳧鴪鵁 | 鵝鶇鷄鷙鸛 麌麪黜黴鼈 齔齪槇 | |||||||
F0 | | | | | | | | | | | ⅰⅸ蓜 丨侊偆兤勛 﨎垬奓甯嵓 弴惕抦昻晴 朗﨓橳汯 | 涖渧瀨凞玽 琪皂砡祥箞 罇葈﨡諟赶 鄕釥鉙鋗錡 鍗閒靍餧 | 髜鵫 |
1バイト目の下位4ビット | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
1 バ イ ト 目 の 上 位 4 ビ ッ ト | 80 | ? ̄々~ ”}』÷∴ $§□→ ∈∧ ≒∬Å | 19A IQYh pxあおげ ずぢなひぺ もりを | ァォケスチ ドパベムヨ ヰΒΚΣ βκσ | АЗПЧЯ азоц ю│┴┣ ┷ | ①⑨⑰Ⅴ㌔ ㍗㎝〝㊧ ≒∟ | 唖葵芦 虻安以威畏 謂郁芋引 | 院羽臼厩荏 栄英悦園沿 艶汚旺鴎臆 穏佳科禍華 霞芽解恢 | 魁芥咳街柿 撹角岳橿活 叶釜刈勘寛 敢澗簡諌韓 癌願嬉旗 | 機稀輝宜義 吃却休朽笈 巨鋸侠卿恐 矯饗曲巾筋 金玖愚串 | 掘粂訓傾形 敬継警劇決 倹堅権肩顕 減限己糊鈷 呉瑚交効 | 后工恒更港 紘膏郊項壕 告腰頃昏魂 査座妻災菜 財崎昨鮭 | 察皐傘珊餐 刺姿支死肢 諮侍滋耳鴫 失実縞社借 錫手酒綬 | 宗秋襲醜汁 宿術駿準処 署序匠妾床 昇沼省紹証 鐘剰条醸 | ||||
90 | 拭食娠森秦 辛壬靭逗粋 瑞据摺勢晴 精逝席籍切 説占栓煽 | 繊践善噌疏 蘇叢匝操争 草遭蔵捉族 尊詑楕岱滞 隊題択諾 | 叩辿単湛蛋 檀恥遅逐宙 註著帳暢腸 頂賃鎚漬坪 亭定挺艇 | 邸滴撤店伝 塗菟度凍嶋 盗祷蕩鐙堂 萄涜栃寅豚 内楢汝虹 | 如禰捻嚢覗 派廃肺楳蝿 柏曝箱畑伐 蛤搬畔頒蛮 扉碑避枇 | 鼻菱姫氷描 鰭頻富斧譜 武葺腹物焚 丙並癖片娩 歩戊呆抱 | 法蓬鳳帽冒 防朴堀摩毎 鱒迄蔓蜜眠 椋迷綿孟木 籾冶役鑓 | 諭幽猶郵輿 揺用踊沃来 乱利裏葎硫 虜梁諒厘鱗 伶苓歴漣 | 蓮路榔蝋倭 鷲湾 丐乖于 从仟佇侑俘 倨倩會傀 | 僉僣儕儿兪 冑冪凅凰刪 剞劍劬勣匆 匣丗卻厰叮 吭呵咀咥 | 咫唏啀唸啻 喇嗔噎噫嚠 嚼囗國圷垈 垪埖塋墟壓 壟夊夸奢 | 奸姨娜婢嫣 嬋孅孰它寤 寳尨屏岑峅 嶌崑嵎嶢巉 巵幄幤廁 | 廖廩弃弭彖 徂徘忸怙怦 恊恫悛惠慍 愃愨慂慴憙 憫懆懺戉 | 戞扎抉拗拜 拮挾捶捩揶 攝攪擒舉擴 攤畋敲斷旙 杳晁晰曁 | 曄曰霸杞杼 柯柝栞梳梭 梵椈棧棹棆 楮楝槓榧槨 樅櫁橇檍 | 檗櫞蘖盜歔 殄殫毋麾汕 汾沽泛洽涓 涅淆淙渙湍 游溯溟滲 | ||
E0 | 漾潯澑濆濮 濾瀾炬烙煦 熕燔燿爲牴 犧狢猜獎獵 珥琲瑩璧 | 瓠瓸甕畊畫 疉疳痊痼瘉 瘰癢癶皖皺 盧眤睚瞎瞿 矜礪碣碾 | 磧礬祓禮秡 禀穡窗窶竏 竦笘笄筧箍 篋簑篳簟籀 籵粨糅糲 | 紂紿絮綛總 緝縣繆縲繹 辮纔罌罟羃 羣翅翳耙聒 聰肛胙脛 | 隋腥膠膵臍 臧舊艀艢艾 苣苻茴茯莢 荳菎菠菻蒭 萵蒻蓿蓼 | 蕁薊蕷藕藾 乕蚪蛉蛟蛻 蜷蝌蝣螽蟆 蟶蠡衒衵袙 裄裴褞褸 | 襦覃覬觜訌 詆誄諄諤謌 謳譏譬讓豌 貂貘貶賻齎 赳跖跼蹂 | 蹇踪躅躪軈 輊輛輾轢辷 逅逖遐遞邁 邵鄲酳醪釐 鈞鉅銜鋩 | 錙鍠鎹鏐鐐 鑄鑵閂閠闊 關陂陟險隹 雕霏霾靤靼 鞨韋頏顏 | 顱飃餘餽饒 馼駱騙騾驤 髏髦鬆鬨魏 鮑鯊鯤鰔鰄 鰲鳧鴪鵁 | 鵝鶇鷄鷙鸛 麌麪黜黴鼈 齔齪槇 | 纊棈伃偀僴 劜厓喆塚妤 岦嶸恝愷擎 昤暲柀槢毖 浯湜瀇煇 | 犾珒璉皦礰 竧綠荿蕫訷 譿逸釞鈺銧 鋕鋿鏸隯顗 髙鵰ⅱⅹ | |||||
F0 | | | | | | | | | | | ⅰⅸⅦ㈱蓜 丨侊偆兤勛 﨎垬奓甯嵓 弴惕抦昻晴 朗﨓橳汯 | 涖渧瀨凞玽 琪皂砡祥箞 罇葈﨡諟赶 鄕釥鉙鋗錡 鍗閒靍餧 | 髜鵫 |
それぞれの一覧を比較すると、「CP942C」は「Shift_JIS」にIBM拡張文字 (とユーザー定義外字)を加えたもの、 「MS932」は「CP942C」にNEC特殊文字・NEC選定IBM拡張文字 を加えたもの、ということが理解していただけると思います。
かつて機種依存文字・環境依存文字として嫌われ「使うな」とまで言われていた、 丸文字・ローマ数字・カッコ株「①②③ⅠⅡⅢ㈱」などは、いわゆる「13区」のNEC特殊文字の範囲です。 NEC選定IBM拡張文字とIBM拡張文字も同様に機種依存文字・環境依存文字なのですが、 こちらの文字について機種依存文字云々という話を聞いたことがありません。おそらくは、 使用頻度が低い文字であることから気にされることが少なかったことと、第一・第二水準の漢字と、 NEC選定IBM拡張文字・IBM拡張文字を 見分けることが難しいためだと思います。 逆に言えば、13区の文字はそれだけ便利で使いたくなる文字なのだと思います。
1バイト目の下位4ビット | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
1 バ イ ト 目 の 上 位 4 ビ ッ ト | 80 | ? ̄々〜 ”}』÷∴ $§□→~ ∈⊄∧⊖〖 ≒∬Å♮ | ▷⇄19A IQY℧h pxあおげ ずぢなひぺ もりを | ァォケスチ ドパベムヨ ヰΒΚΣ ♠βκσ⓵ ⓽☂ㇴㇻ | АЗПЧЯ ⏅азоц ю⅓│┴┣ ┷㉒㉚㊳㊻ ◓Ḿǘ | €ºÂÊ ÒÛãêò ûĒ˘Žš ĂŇĺňĜ ĵɬʐŋ | ʔƓɜɑɺ έ̋˥̬ ̯̘❷❿⓲ ⅵⓑⓙⓡⓩ ㋗㋟㋭ | ①⑨⑰Ⅴ㌔ ㍗㎝〝㊧ ∟𠀋仿佪 俠倻儆兗刁 勈勻厓呴 | 咩喁嘎噲圊 坼埤塤𡑮虁 姝媞唖葵芦 虻安以威畏 謂郁芋引 | 院羽臼厩荏 栄英悦園沿 艶汚旺鴎臆 穏佳科禍華 霞芽解恢 | 魁芥咳街柿 撹角岳橿活 叶釜刈勘寛 敢澗簡諌韓 癌願嬉旗 | 機稀輝宜義 吃却休朽笈 巨鋸侠卿恐 矯饗曲巾筋 金玖愚串 | 掘粂訓傾形 敬継警劇決 倹堅権肩顕 減限己糊鈷 呉瑚交効 | 后工恒更港 紘膏郊項壕 告腰頃昏魂 査座妻災菜 財崎昨鮭 | 察皐傘珊餐 刺姿支死肢 諮侍滋耳鴫 失実縞社借 錫手酒綬 | 宗秋襲醜汁 宿術駿準処 署序匠妾床 昇沼省紹証 鐘剰条醸 | ||
90 | 拭食娠森秦 辛壬靭逗粋 瑞据摺勢晴 精逝席籍切 説占栓煽 | 繊践善噌疏 蘇叢匝操争 草遭蔵捉族 尊詑楕岱滞 隊題択諾 | 叩辿単湛蛋 檀恥遅逐宙 註著帳暢腸 頂賃鎚漬坪 亭定挺艇 | 邸滴撤店伝 塗菟度凍嶋 盗祷蕩鐙堂 萄涜栃寅豚 内楢汝虹 | 如禰捻嚢覗 派廃肺楳蝿 柏曝箱畑伐 蛤搬畔頒蛮 扉碑避枇 | 鼻菱姫氷描 鰭頻富斧譜 武葺腹物焚 丙並癖片娩 歩戊呆抱 | 法蓬鳳帽冒 防朴堀摩毎 鱒迄蔓蜜眠 椋迷綿孟木 籾冶役鑓 | 諭幽猶郵輿 揺用踊沃来 乱利裏葎硫 虜梁諒厘鱗 伶苓歴漣 | 蓮路榔蝋倭 鷲湾寘屢岪 崍嶁丐乖于 从仟佇侑俘 倨倩會傀 | 僉僣儕儿兪 冑冪凅凰刪 剞劍劬勣匆 匣丗卻厰叮 吭呵咀咥 | 咫唏啀唸啻 喇嗔噎噫嚠 嚼囗國圷垈 垪埖塋墟壓 壟夊夸奢 | 奸姨娜婢嫣 嬋孅孰它寤 寳尨屏岑峅 嶌崑嵎嶢巉 巵幄幤廁 | 廖廩弃弭彖 徂徘忸怙怦 恊恫悛惠慍 愃愨慂慴憙 憫懆懺戉 | 戞扎抉拗拜 拮挾捶捩揶 攝攪擒舉擴 攤畋敲斷旙 杳晁晰曁 | 曄曰霸杞杼 柯柝栞梳梭 梵椈棧棹棆 楮楝槓榧槨 樅櫁橇檍 | 檗櫞蘖盜歔 殄殫毋麾汕 汾沽泛洽涓 涅淆淙渙湍 游溯溟滲 | ||
E0 | 漾潯澑濆濮 濾瀾炬烙煦 熕燔燿爲牴 犧狢猜獎獵 珥琲瑩璧 | 瓠瓸甕畊畫 疉疳痊痼瘉 瘰癢癶皖皺 盧眤睚瞎瞿 矜礪碣碾 | 磧礬祓禮秡 禀穡窗窶竏 竦笘笄筧箍 篋簑篳簟籀 籵粨糅糲 | 紂紿絮綛總 緝縣繆縲繹 辮纔罌罟羃 羣翅翳耙聒 聰肛胙脛 | 隋腥膠膵臍 臧舊艀艢艾 苣苻茴茯莢 荳菎菠菻蒭 萵蒻蓿蓼 | 蕁薊蕷藕藾 乕蚪蛉蛟蛻 蜷蝌蝣螽蟆 蟶蠡衒衵袙 裄裴褞褸 | 襦覃覬觜訌 詆誄諄諤謌 謳譏譬讓豌 貂貘貶賻齎 赳跖跼蹂 | 蹇踪躅躪軈 輊輛輾轢辷 逅逖遐遞邁 邵鄲酳醪釐 鈞鉅銜鋩 | 錙鍠鎹鏐鐐 鑄鑵閂閠闊 關陂陟險隹 雕霏霾靤靼 鞨韋頏顏 | 顱飃餘餽饒 馼駱騙騾驤 髏髦鬆鬨魏 鮑鯊鯤鰔鰄 鰲鳧鴪鵁 | 鵝鶇鷄鷙鸛 麌麪黜黴鼈 齔齪槇帘异 彅徧怍悞愰 戢拖揥摠 | 擄敧昢晌晸 㬢杇柹栬梲 椊楨槢樻𣝣 㰏歠每汜泻 洎涂淖湜 | 滇潑澍濹灞 烔焰煨燄犛 獐玫琊琬瑗 璜璿畯瘈癋 皝盔睆瞔 | 硃𥔎礱祖福 秞突竽筭簱 籭糝絈緂縕 署翮胊腨䑛 芩苾荇莩 | 菑葟蓀蕤藋 𧃴䖝蜋䗪袘 褘覔訷諐譔 賴跑軀辦邈 郄都鄱醱 | 釥鈼鋌鍈鎣 鑊閩闚隥靍 鞺頞顙饘驊 髹魦鯁鱏鵃 鷀鹼黑姸 | ||
F0 | 𠂉乇亝仈佤 佺侾倐偆傣 𠌫僎宬寱屣 𡵸岢𡷠崦嵰 嶙巘帒幖 | 儈冃𠗖剕𠠺 勑卂𠫓叚呃 咦哬啁𠷡𠹭 𠹤㗴㘅嚲圕 坍𡋤𡋽埸 | 堠墊墱夆㚙 奶姣娍媋媺 嫵孨𢅻廙彇 忄忮㤚悱愐 慆憥𢦏扡 | 抙𢭏捎𢰤揫 摚撟擿攞斅 旔昪晣暀㬚 𣍲𣏐荣柛栭 桌梂梪棃 | 棙㮈楺榷樰 槴樴𣜌檡櫝 𣠤欯殮毦氶 沉㳒洀浛涑 涮淟渲湓 | 溓滫漼潽澵 瀀灃灮炻烓 㷀熖𤎼爫牣 犭㹨猹獬玊 玷珹瑀璈 | 璠瓖甠畈畽 疰痟瘘瘜癁 皡盨䀹睼瞩 矰砙碔磎磾 祘禛种稕 | 稸穧窬竑笽 筿筳箵篖簦 籮粶𥻨紉絀 絰𦁠緙縗繾 缼罒𦍌翃 | 翲耬肜胦脞 腩膲臬舙艉 𦪌艽芴茌䒾 莝萑葒葼蓎 蓱蔴蕞薆 | 𦿶藟蘤虓蚑 蛃蜇蜱蝤螋 蟎蟫蠲𧘔裀 䙁𧝒覷觿詅 諼譃讔𧯇 | 豗䝤賱𧾷踆 䠖蹯𨊂輈辴 迍逌邅郃鄀 鄞酡醳釮鉇 鉥銉𨦻鋙 | 𨨩錞鍚鎋鏇 鏻鑯閴阴隚 䧺䨩𩊠鞾頄 頲𩗏飋飱餚 餻饟駉騊 | 騱骷䯨鬒魣 鮬鯳𩸕鰙鰱 𩻛鱫鳲䳄𪃹 鶄鷃鷴鹻𪐷 鼗齆𪘚 |
Shift_JISと比べ、記号が追加された領域 | JIS第三水準漢字 | ||
JIS第一水準漢字 | JIS第四水準漢字 | ||
JIS第二水準漢字 | JIS第三水準漢字が混ざっている領域 |
Shift_JIS-2004の最大の特徴は、Shift_JISの空き領域にほぼ隙間なく詰め込むことにより、 Shift_JISとの互換性を保ちながらJIS第三・四水準漢字を完全にサポートした点です。 また、「MS932」の独自拡張部分で非常によく使われていた、丸文字・ローマ数字・カッコ株「①②③ⅠⅡⅢ㈱」などのNEC特殊文字は、そのまま取り入れました。 これにより、1文字最大2バイトと消費バイト数が少ない文字コードでありながら、日本語で使用する漢字を非常に多く取り扱える優れた文字コードになりました。
一方でNEC選定IBM拡張文字・IBM拡張文字の文字は、 大部分を削除し一部を別のコード値に移動しました。その結果、MS932との互換性が一部失われてしまいました。
デファクトスタンダードとして確立していたMS932との互換性を一部犠牲にしたこととUnicodeが広がり始めていた時期でもあったため、 仕様としては優れていたもののほとんど使われない文字コードとなってしまいました。 制定があと数年早くWindows98もしくはWindows95で採用されていれば、2020年現在でも、 UTF-8をはじめとするUnicode系文字コードに負けないくらい、よく使われる文字コードになっていたかもしれません…。
このページは、Shift_JIS系の文字を一覧表にした時に、拡張文字がどこに配置されているのか、 それぞれどのあたりが違っているのかを頭の中でイメージしたいと思い作成しました。 このページを作ったことにより、自分ではかなり整理できました (それでもまだ十分に理解したとはいえない状態ですが…)。
とりとめもない内容になってしまいましたが、何かのお役に立てれば幸いです。
このページに関するちょっとした感想または、要望、バグ・間違いの指摘などは、下記の送信欄からお送りください。 質問・その他お問合せなど、返信をご希望の方は「こちらのページ」からメッセージをお送りください。
「このページはお役に立ちましたか?」のアンケートと自由メッセージのどちらか一方でかまいません (両方だとよりうれしいです)。お気軽にご利用ください (感想・どんな用途で使用したかなどをいただけると作成・運営の励みになります!)。