教えてください。
文字コードについて調べています。アルファベットはASCIIコードで統一されているために、特に問題がなく、日本語にも JISコードという標準化されているコードがあります。
なので、基本的にはこれをみんなが使えば、文字化けなどという問題には悩まされなくてすむはず。
なのに、なぜ Windows では Shift-JISなどという独特な文字コードを使い、UNIX系では EUCコードを使っているのでしょう。いったい、どの文字コードが一番初めにできて、なぜそれで標準化を図ることができなかったのかなど、日本語文字コードに関する歴史について、ご存知の方、ぜひ教えていただければ幸いです。
No.1
- 回答日時:
OSも今のようにオープンではなく、独自路線で
進んできたことも要因でしょう。
近年になりオープンシステム化が進み、かつ、インターネットの普及とともに、文字コードの相違が目立つようになりました。
そこで(ということでもないですが)でてきたのがUnicode。
すべての文字を16ビット(2バイト)で表現し、1つの文字コード体系で多国語処理を可能にしようとするもの。世界の主要な言語のほとんどの文字を収録している。
これまで、これほど多くの文字コードが存在してしまったのは、コンピュータの能力や独自路線を進むOS郡のたまものでしょうか。
No.2ベストアンサー
- 回答日時:
最初に制定されたのは『JIS』です。
『JIS』では、半角(1バイト)文字と全角(2バイト)文字が混在した文字列中で、それぞれを区別するために、エスケープシーケンスと呼ばれるコードを挿入します。
特定のエスケープシーケンスの後に続くコードをASCII文字コードや漢字コードと解釈するというものです。
ISO-2022-JPで制定されているエスケープシーケンスは、
[ESC] ( B :0x1B 0x28 0x42:以降ASCII文字
[ESC] ( J :0x1B 0x28 0x4A:以降半角カナ
[ESC] $ @ :0x1B 0x24 0x40:以降JIS-1978漢字
[ESC] $ B :0x1B 0x24 0x42:以降JIS-1983漢字
しかし、このエスケープシーケンスで文字コードを指定する方式では、半角と全角が混在している文字列では、文字数とバイト数が混在の仕方で大きく変わってきます。
例えば、今日の日付(5月18日:5と18を半角表記)を『JIS』で表記すると、"5"と"月"の間に3バイト、"月"と"1"の間に3バイト、"8"と"日"の間に3バイト、それぞれエスケープシーケンスコードが入り(5の前のエスケープシーケンスはデフォルトの指定がASCII文字という決まりなので、省略が可能)、単純に考えれば7バイトで足りる所が16バイトも必要になります。(ISO-2022-JP-3では、漢字コードのエスケープシーケンスが4バイトになっているので、18バイトも必要)
そこで、もう20年ほども前のことですが、『Microsoft社』が『MS-DOS』を日本製のパソコンに移植するに際し、『JIS』の「無駄にバイト数を必要とする」という欠点を解消するべく、日本の『ASCII社』(月刊ASCIIとかを出版しているPC雑誌の老舗)と共同開発したのが『Shift-JIS』です。
『Shift-JIS』では、漢字コードの1バイト目を、ASCII文字やJIS半角カナ文字のコードと重ならない0x81~0x9F、0xE0~0xEFにシフトすることで、1バイト目がこの範囲のコードだったら、2バイト目とあわせて2バイトの漢字コードと判断するという仕組みです。
『EUC』は同様の目的で、『AT&T社』によって制定され、UNIX環境での事実上の標準日本語コードとなっていますが、『EUC』自体は、日本語だけでなく複数の文字セットを同じテキスト内で処理することが可能になっています。
ASCII :0x21~0x7E
半角カタカナ :0x8E(1バイト目)+0xA0~0xFF(2バイト目)
漢字 :0xA0~0xFF(1バイト目)+0xA0~0xFF(2バイト目)
補助漢字 :0x8F(1バイト目)+0xA0~0xFF(2バイト目)+0xA0~0xFF(3バイト目)
『Microsoft社』(と『ASCII社』)が『Shift-JIS』を開発し、自社製の『MS-DOS』や、その後継OSである『Windows』に採用したために文字コードの規格としては圧倒的なシェア(シェアというのかどうか???ですが)を誇り、『ISO-2022』にも『JIS規格』にも定められていないにもかかわらず、相変わらず使われているわけです。
こんな所でよろしいでしょうか?
No.3
- 回答日時:
各文字コードには長所、短所があるため、それぞれの理由で使われてます。
JISが正規な物で、通信に使うべきものです。
ただ、コンピュータ内部では別な文字コードを使ってもかまいません。
実際、JISはコンピュータで処理が面倒ですし、MS-DOS当時のマシンでは実用的には使えなかったので、
扱いやすい文字コードとして決められた物がShift JISです。
ただし、速度優先のためいろいろと問題があります。
現在も使われているのは、互換性のためでしょう。
EUCもおそらく内部の処理が複雑になるのを避けるために文字コードを決めたと思いますが、
Shift JISのコードが持つ問題が、既存のUNIX用のソフトに与える悪影響が多すぎるため、
問題の無いコードとしてEUCを決めたと思われます。
ただ、Shift JISを使った物もありましたが。
でも、結局コンピュータ内部で何を使っていても、外部とは全てJISで通信するということを守っていれば問題無いのですが、
内部のコードであるShift JISやEUCをそのまま外部にだしてところが多いのが現状です。
そういえば、UNICODEもありますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GB と Gbの違いの意味
-
KBとMBの違いを教えてください-...
-
文字の容量(サイズ)についての...
-
1Mbpsって毎秒何キロバイト?
-
アルファベット30文字は何バイ...
-
CSV データのバイト数を調べる...
-
実行計画の「COST」と「BYTE」...
-
新聞1ページは何バイトですか?...
-
TMPGEnc Authoring Works 4
-
カナカナの(半)濁点がついた文...
-
バイトの容量について
-
携帯電話の略語であるMBって英...
-
KBのMB違いって
-
文字数5000字、文字コードが2バ...
-
EXCELでの16進数取り出し、上...
-
ACCESS2000で変数の扱い方について
-
32bitコンピューティングについて
-
1テラバイトに、CDが何枚はいる...
-
DVD-R 4.7GBって、何byte でし...
-
32bit = 4GB(バイト)?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の容量(サイズ)についての...
-
携帯電話の略語であるMBって英...
-
KBのMB違いって
-
EXCELでの16進数取り出し、上...
-
KBとMB
-
1Mバイトって何バイト?
-
K KB MB について詳し...
-
CSV データのバイト数を調べる...
-
Excel_VBAで改行コードの無いフ...
-
実行計画の「COST」と「BYTE」...
-
文字数5000字、文字コードが2バ...
-
GB と Gbの違いの意味
-
アルファベット30文字は何バイ...
-
新聞1ページは何バイトですか?...
-
32bit = 4GB(バイト)?
-
カナカナの(半)濁点がついた文...
-
DVD-R 4.7GBって、何byte でし...
-
マトリックスサイズが512×512で...
-
Oracle AL32UTF8でのバイトサイ...
-
1Mbpsって毎秒何キロバイト?
おすすめ情報