プロが教える店舗&オフィスのセキュリティ対策術

僕の買った参考書には

ASCIIコード・・・英数字・記号を1Bで表す。
JISコード・・・英数字・記号を1Bで表すコード体系とひらがな・漢字を2バイトで表すコード体系。
シフトJISコード・・・ASCIIの1Bコード体系とJISの2Bコード体系を合体した文字コード。

とあるのですが、JISコードとシフトJISコードの違いが分かりません。というか同じではないでしょうか?2つのコードの違いを教えてください。

A 回答 (4件)

> 漢字の始まりを示すシフトインと漢字の終わりを示すシフトアウト



違います。
シフトインとシフトアウトはそれぞれアスキーコードで言うと
0x0F と 0x0E で、7ビットしか使えない環境で
半角カナを送信するときなどに使われるものです。

今ではJISコードって言い方も変なんですが
(漢字のJIS規格はひとつじゃないから)
とりあえず

JISコード
漢字やひらがな(2バイトで表される)などといわゆる半角英数字
(1バイトで表される)
のを、ある特定のしるし(エスケープシーケンス)で
切り替えるやり方

ShiftJIS
JISコードのような切り替えをやらずにまぜて表すやり方

ぐらいでいいんじゃないかと。

正確に書こうとすると800文字じゃとてもたりません。
まあ#1の方の挙げているリンク先に詳しくかかれてますけど。
    • good
    • 0

JISコードは漢字の始まりを示すシフトインと漢字の終わりを示すシフトアウトを付ける事で漢字(2Byteコード)と漢字で無い部分(1Byteコード)を区別しています。



ShiftJISコードはアルファベットにも半角カナにも使っていないJIS8Bitコードの空き 0x81~0x9F、0xE0~0xFC を漢字の1バイト目とする事で漢字(2Byteコード)と漢字以外(1Byteコード)を区別しています。
    • good
    • 2

★買った参考書は分かりにくそうですね。


・『1B』とか『2B』って1バイト、2バイトという意味かな?
>JISコードとシフトJISコードの違いが分かりません。
>というか同じではないでしょうか?
 ↑
 同じではないです。
>2つのコードの違いを教えてください。
 ↑
 半角文字の英数字・記号などはどちらも1バイトの ASCII コードとして表します。
 JIS漢字コードとシフトJIS漢字コードは両方とも1つの漢字(ひらがなも含む)を
 2バイトで1文字と表します。ここは共通。
・JIS漢字コードは
 第1バイトに 0x21~0x7E までの文字コードを使う(94種類)
 第2バイトにも 0x21~0x7E までの文字コードを使う(94種類)
 この2バイトの組み合わせで漢字文字を表現しています。(94×94=8836種類)
 つまり
 0x2121、0x2122、0x2123…0x212F⇒ 、。,.・:;?!゛゜´`¨
 0x2130、0x2131、0x2132…0x213F⇒^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/
  :
 0x7E70、0x7E71、0x7E71…0x7E7E⇒・・・・・・・・・・・・・・・
 となります。
・シフトJIS漢字コードはちょっと複雑で
 第1バイトに 0x81~0x9F、0xE0~0xFC までの文字コードを使う(60種類)
 第2バイトは 0x40~0x7E、0x80~0xFC までの文字コードを使う(188種類)
 この2バイトの組み合わせで漢字文字を表現しています。(60×188=11280種類)
 つまり
 0x8140、0x8141、0x8142…0x814F⇒ 、。,.・:;?!゛゜´`¨^
 0x8150、0x8151、0x8152…0x815F⇒ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\
  :
 0xFCF0、0xFCF1、0xFCF2…0xFCFC⇒・・・・・・・・・・・・・
 となります。
・上記で『・』となっているのは文字コードのフォントがないからです。注意。
 あと JIS 漢字コードはメールなどで使われています。
 http://www.asahi-net.or.jp/~AX2S-KMTN/ref/jisx02 …→『JIS基本漢字』
 シフト JIS 漢字コードは普通のテキストファイルなどに多く使われています。
 だから『あいうえお』はシフトJISコードで表すと
 0x82A0、0x82A2、0x82A4、0x82A6、0x82A8 となります。
・以上。ネット検索した方がいい資料が見つかりますよ。
    • good
    • 3

2バイトに割り付けてある場所が違います。


http://www.gprj.net/dev/tips/other/kanji.shtml
がわかりやすいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!