文字コード

chotdekiru/cs-binary-5-charcodeデータの表し方 - 0と1の世界14コンピュータサイエンス

上から下へ、全 14 枚そのまま並べています。

発表モードで開く

データの表し方 - 0と1の世界

文字コード

〜文字を数字で表す〜 「あ」や「A」を数字に置きかえるしくみ

1
1
データの表し方 - 0と1の世界

今日のゴール

このレッスンを終えると、こう言えるようになります。

  • 文字も中身は番号(数字)でできている
  • なぜ文字化けが起きるのかわかる
  • Unicode や UTF-8 という言葉がわかる
2
2
データの表し方 - 0と1の世界

コンピュータは数字しか分からない

前回までで学んだとおり、中身は0と1の数字の集まりです。

  • 文字をそのまま覚えることはできない
  • 扱えるのは数字(0と1)だけ
  • だから文字も数字に置きかえる必要がある
3
3
データの表し方 - 0と1の世界

文字に番号を割り当てる

文字を数字で表すための「対応表」が文字コードです。

文字コード

どの文字をどの番号で表すかを決めた、約束ごとの対応表。

1文字ごとに番号を割り当てる

「A」は65、「a」は97 と決まっている

表が同じなら誰でも同じ文字を読める

4
4
データの表し方 - 0と1の世界

ASCII(英数字の基本)

英数字と記号を番号で表す、いちばん基本の対応表です。

文字
番号(10進数)

スペース

(空白)

32

数字のゼロ

0

48

大文字

A

65

小文字

a

97

5
5
データの表し方 - 0と1の世界

日本語の難しさ(文字が多い)

日本語は文字の種類がとても多く、番号が足りません。

  • 英数字と記号は100個ほどで足りる
  • 日本語は漢字だけで数千〜数万種類
  • もっと大きな対応表が必要になる
6
6
データの表し方 - 0と1の世界

Shift_JIS・EUC など(さわり)

日本語を表すため、昔はいくつもの対応表が作られました。

Shift_JIS
  • 昔の Windows で主流
  • 日本語ソフトで広く使用
EUC-JP
  • 昔の UNIX で主流
  • サーバなどで使用
困った点
  • 表が何種類もある
  • ズレると文字化けの原因
7
7
データの表し方 - 0と1の世界

Unicode の登場(世界共通)

バラバラな表をやめ、世界中の文字を1つにまとめました。

Unicode(ユニコード)

世界中のあらゆる文字に、共通の番号を割り当てた大きな対応表。

日本語も英語も絵文字もまとめて収録

1つの表だから国や機種を選ばない

今の世界共通の標準になっている

8
8
データの表し方 - 0と1の世界

UTF-8 とは

Unicode の番号を、実際に保存する方法のひとつです。

UTF-8(ユーティーエフエイト)

Unicode の番号を0と1に書き出すための、いちばん使われる方式。

英数字は少ない量、日本語は多めの量で保存

Web ページの大半がこの方式

迷ったら UTF-8 を選べば安心

9
9
データの表し方 - 0と1の世界

文字化けが起きるしくみ

書いた時と読む時で対応表がズレると、別の文字に化けます。

表が合っている(正しく表示)

書いた表
読んだ表
結果
UTF-8
UTF-8
ありがとう
Shift_JIS
Shift_JIS
こんにちは

表がズレている(文字化け)

書いた表
読んだ表
結果
UTF-8
Shift_JIS
縺ゅj縺後→縺・
Shift_JIS
UTF-8
ã�ã‚“ã�«ã�¡ã�¯
10
10
データの表し方 - 0と1の世界

文字化けの直し方の考え方

化けたら「読む時の表」を正しいものに合わせ直します。

化けた文字が出る場面に気づく
ファイル本来の表を確認する
読む時の表を同じものに切りかえる
正しい文字に戻る
11
11
データの表し方 - 0と1の世界

改行コードの違い(おまけ)

改行も見えない文字で、種類が違うとズレることがあります。

記号
主に使う場所

CR

昔の Mac

古い機種で使用

LF

Mac・Linux

今の Mac など

CRLF

Windows

Windows で使用

12
12
データの表し方 - 0と1の世界

実例 同じ文字を別コードで見る

同じ「A」や「あ」でも、表によって番号がこう変わります。

文字「A」

  • ASCII では 65
  • Unicode でも 65
  • 英数字は表が同じことが多い

文字「あ」

  • Shift_JIS と Unicode で番号が違う
  • 表がズレると化ける原因
  • だから表をそろえる
13
13
"

文字も中身はただの番号。どの番号がどの文字かを決めた「対応表」が文字コードです。 書いた時と読む時で表がズレると文字化けする。だから今は世界共通の Unicode(UTF-8)にそろえます。

データの表し方 第5回 — 文字コード

14
14