• ベストアンサー

文字コードについて

Windowsでよく使う文字コードはSJISなのでこれについて調べたら shift-jis、cp932、Windows-31Jのような名称がある事がわかりました。 これらの違いは調べてわかったのですが、プログラムで文字コードを指定する時、プログラムによって上の文字を上の文字を使い分けなければいけませんがなぜこのような現象が起こるのですか? 各アプリケーションで指定する文字コード名を勝手に定めているように思えます。上の文字コードはISOやIANA等に登録されているみたいですが、文字コードを登録するための統一された一つの組織に登録するわけではないのですか? またエディタなどでこれらを区別する際にはどのようにして判別しているのですか? これらの質問のどれかが分かったらその質問だけで構わないので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#111181
noname#111181
回答No.1

>> プログラムによって上の文字を上の文字を使い分けなければいけませんがなぜこのような現象が起こるのですか? << プログラム言語に実装されているか否かという問題です。 たとえばご質問にあった shift-jis、cp932、Windows-31J などは、JavaやPHPには実装されていますが、VBやPostgreSQLにはありません。 >> 文字コードを登録するための統一された一つの組織に登録するわけではないのですか? << そういうわけではありません。 ISOで統一しているコードが多いのですが、たとえばシフトJISに対応するISO規格はありません。さらに、携帯文字コード(顔文字)に至っては、キャリアによってバラバラという状態です。 >> またエディタなどでこれらを区別する際にはどのようにして判別しているのですか? << 先頭の何文字かを読み込んで、コードの出現頻度などから、矛盾のないコード体系を選んでいます。 ですから、極端に短いマルチバイト・コンテンツだと、エンコードを間違えることがあります。

noroli
質問者

お礼

なるほどよく分かりました。 ありがとうございます。

その他の回答 (1)

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.2

>これらの違いは調べてわかったのですが、プログラムで文字コードを指定する時、プログラムによって上の文字を上の文字を使い分けなければいけませんがなぜこのような現象が起こるのですか?  上の文字コードは、マイクロソフト社の規定です。 これは初期の MS-DOS というオペレーティングシステムから16bit Windows OS、32bit Windows OSが開発された時期に応じてビジネスの展開に都合がよいように拡張されてきたということです。 >文字コードを登録するための統一された一つの組織に登録するわけではないのですか?  技術の進歩はビジネスの目的で単一の企業が先陣を切り他社が違う方式を林立し、競争し淘汰されてデファクトスタンダードが確立し、標準化機構が定義するという成長モデルが自由主義社会のルールのようです。  マイクロソフト社起源以外の文字コードを参考URLに上げておきます。

参考URL:
http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89
noroli
質問者

お礼

ありがとうございます。 参考になりました。