「文字コード」についてまとめた。


そもそも「文字コード」って何

以下のどちらかの意味で用いられるみたい。

  • コンピュータ上で文字を利用する目的で各文字に割り当てられるバイト表現
  • バイト表現と文字の対応関係

そんな規格の種類

ASCII

  • アメリカ規格協会(ANSI)が制定したコード
  • 元々これしかなかった(1990年以前)
  • 8ビットで構成( 1文字を7bit + 誤り検出用に1bit )
    • 128文字を表現する事が可能( 制御文字、アルファベット、数字、記号など )
  • コンピュータその他の通信機器において最もよく使われている!!ik
    • 後述する文字コードは、ASCIIで使用されていない128番以降の部分に、その他の文字を割り当てているため
    • イメージ的には、ASCIIが内包されているような感じ。あくまでもイメージ。イメージ

JIS

  • 日本工業規格(JIS)により定められたコード
  • ISO-2022-JPと同義
  • ASCIIだと128文字だけなので、かな/カナ/漢字が表現できない!という事で誕生
  • 2バイトで構成
    • この辺にも書かれてるけど、ASCIIと漢字のコード範囲が重複するため、エスケープシーケンスによって文字集合を切り替える
    • けど、エスケープシーケンスが一つでも欠損すると文字化けする
    • しかもエスケープシーケンスがあるので、ファイルサイズも大きくなり、処理時間も増える.....

Shift-JIS

  • Microsoft社により定められたコード
  • 半角文字も全角文字も一律2バイトで扱う
  • エスケープシーケンスなしで実現
  • 5C問題
    • 5CはASCIIでいうところの「バックスラッシュ」
    • なので、多くのプログラム言語ではエスケープ扱いになる
    • つまり・・・??
      • 芸能界(8c7c 945c 8A45)から5Cが消え去り、芸矧E(8c7c 948A 45)になる。
  • とはいえ今では広く使われている。

Unicode

  • ユニコード・コンソーシアムにより制定されたコード
  • 上記のJISやShift-JISだと、日本語しか対応できない
    • そこで、多言語対応するために登場。
  • 文字を4バイトで表現する
    • 多言語対応するので2バイトだと足りない。
  • UTF-8UTF-16は、ここに分類される。
    • UTF-8
      • 4バイト
      • 多言語に対応できるので、広く使われている。
    • UTF-16
      • Windowsの内部コードはUTF-16
      • Windowsのメモ帳を使うと、UTF-16で保存される
      • つまり...??
        • 互換性のないやつで開こうとすると死ぬ

勘違いしやすいヤツ

勘違いするのは僕だけかもしれないけど、一応まとめておく。

base64

  • 文字コードじゃない!!!!!
  • 64進数で表されるエンコード方式
  • バイナリデータを文字で表現したもの
  • p6OyG0+2Sp3g6enlDgiqxBrJ+jJX3kZs6Fk8Y755GhXDtPWfdZvboJ8JObexuvi50A9Syx9HijjmyRbvRp7sXo みたいな感じの、とにかく意味分からんやつ。

バイナリ

  • 文字じゃない!!!!!
  • 文字ではなくデータ。
  • コンピュータが認識するためのものなので、人間に分かるはずがない。
  • テキストエディタで開いたら文字化けするアレ。



以上。

Wikipedia - 文字コード
文字コードとは?~UTF-8はパソコンの世界共通語~
文字コード(日本語漢字コード表)