Shift_JIS
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/18 09:54 UTC 版)
符号化方式
区点番号の割当
JIS X 0208では文字集合が区点番号として94×94の文字表の行と列の番号の組で表現される。これら区点番号をShift_JISでは以下のような対応で符号化している。
Shift_JIS | 第2バイト(16進) | ||||||||
---|---|---|---|---|---|---|---|---|---|
40 | … | 7E | 80 | … | 9F | … | FC | ||
第1バイト (16進) |
81 | 1区1点 | 1区63点 | 1区64点 | 2区1点 | 2区94点 | |||
⋮ | |||||||||
9F | 61区1点 | 61区63点 | 61区64点 | 62区1点 | 62区94点 | ||||
E0 | 63区1点 | 63区63点 | 63区64点 | 64区1点 | 64区94点 | ||||
⋮ | |||||||||
EF | 93区1点 | 93区63点 | 93区64点 | 94区1点 | 94区94点 |
JIS X 0213では94×94の文字表が2つあり、それぞれ第1面・第2面と表現される。第1面(第1・2・3水準)は上記符号化の範囲に収まる。第2面(第4水準)は区番号が1・3・4・5・8・12-15・78-94区と不連続に構成されており、この26区分を収録するためにShift_JIS-2004では以下のように対応している。
Shift_JIS | 第2バイト(16進) | ||||||||
---|---|---|---|---|---|---|---|---|---|
40 | … | 7E | 80 | … | 9F | … | FC | ||
第1バイト (16進) |
F0 | 1区1点 | 1区63点 | 1区64点 | 8区1点 | 8区94点 | |||
F1 | 3区1点 | 3区63点 | 3区64点 | 4区1点 | 4区94点 | ||||
F2 | 5区1点 | 5区63点 | 5区64点 | 12区1点 | 12区94点 | ||||
F3 | 13区1点 | 13区63点 | 13区64点 | 14区1点 | 14区94点 | ||||
F4 | 15区1点 | 15区63点 | 15区64点 | 78区1点 | 78区94点 | ||||
F5 | 79区1点 | 79区63点 | 79区64点 | 80区1点 | 80区94点 | ||||
⋮ | |||||||||
FC | 93区1点 | 93区63点 | 93区64点 | 94区1点 | 94区94点 |
区点番号からの変換
面区点番号 から Shift_JISの 第1バイト・第2バイトは以下の式で求められる[10]。は床関数。
符号化可能な文字数
初期のShift_JISでは、第1バイトが47通り、第2バイトが188通りの符号があるため、 47 × 188 = 94 × 94 = 8836 の2バイト文字を表現することができ、これはJIS X 0208で規定された区点番号のすべてを収められるように設計されている。ここに158字の英数字・半角カナ(スペース含む、DEL除く)を加えると、計 8994 文字となる。
さらに、第1バイトはF016-FC16を用いることで60通りまで拡張されており、 60 × 188 + 158 = 11438 文字を表現することができる。Microsoftコードページ932のIBM拡張文字やShift_JIS-2004の第4水準文字の符号化ではこれらの領域を動員している。
- ^ “XML用語事典 [シフトJIS(Shift_JIS)]”. @IT. 2021年1月11日閲覧。
- ^ EUC-JPはおおよそそのように実装されており、半角カナの表現には切替が必要。
- ^ 古川享 「私のマイコン遍歴、日本のパソコン30年史、その1」の2005年12月28日のコメント 『古川享ブログ』 2005年12月28日
- ^ 安岡孝一 「日本における最新文字コード事情」『システム/制御/情報』、Vol. 45, No. 9, pp. 528–535, 2001
安岡孝一 「シフトJISの誕生」 2005年12月22日
安岡孝一 「Re:古川享さんがシフトJIS誕生について書いています」 2005年12月29日
安岡孝一、安岡素子『文字符号の歴史 欧米と日本編』共立出版 2006年2月 ISBN 978-4-320-12102-7 - ^ 山下良蔵 「私のマイコン遍歴、日本のパソコン30年史、その1」の2006年9月21日のコメント 『古川享ブログ』 2006年9月21日
- ^ 安岡孝一「Re:古川享さんがシフトJIS誕生について書いています」 2006年 9月29日
- ^ 西田憲正「Unix風の機能を持ち込んだ日本語MS-DOS2.0の機能と内部構造」『日経エレクトロニクス』 1983年12月19日号、pp.165-190。
- ^ a b “CHARACTER SETS”. IANA. 2011年7月4日閲覧。
- ^ 外字を使うのはやめてくれ! Unicodeへの移行を呼びかけるMicrosoftの公式ブログ記事が話題に - やじうまの杜 - 窓の杜
- ^ “JIS X 0213の代表的な符号化方式 § Shift_JIS-2004”. 2019年4月27日閲覧。 Hexadecimal numbers in the source have been converted to decimal for display.
- ^ 区点番号では、奇数区29点の文字が該当する。
- ^ 日本OSS推進フォーラム プラットフォーム部会 マイグレーションタスクフォース (2009年7月10日). “Linuxマイグレーションガイド LinuxのShift JISサポート -現状とその対応策-”. 2018年10月16日閲覧。
- ^ Char-Sjis-1.08 - Native Encoding Support by Traditional Scripting - metacpan.org
- ^ Encode-3.00 - character encodings in Perl - metacpan.org
- ^ a b Microsoftコードページ932による符号
- ^ Shift_JIS-2004による符号
- Shift_JISのページへのリンク