【IT基礎】文字コードとは?「翻訳ルールブック」の違いで起きる文字化けの謎

メールを開いたら、「縺ゅ>縺??」のような意味不明な記号が並んでいた…。
この不気味な現象を「文字化け(もじばけ)」と呼びます。

「何も悪いことしてないのに、なんで?」と焦りますよね。
これは、コンピュータ同士の「言葉の行き違い」が原因です。

この記事では、文字コードという仕組みを「スパイの暗号ブック(翻訳表)」に例えて解説します。
これを読めば、ASCII、Shift_JIS、UTF-8といった謎の単語の意味がスッキリ分かります。

1. コンピュータは文字を「数字」で覚えている

大前提として、コンピュータは「あ」や「A」という文字を理解できません。
以前の記事で説明した通り、コンピュータは「0と1の数字」しか扱えないからです。

そこで、人間はコンピュータにこう教え込みました。
「いいか、これから『65』と言ったら『A』のことだぞ。『12354』と言ったら『あ』のことだぞ」

この「文字」と「数字」の対応表のことを「文字コード(キャラクターコード)」と呼びます。

イメージ:スパイの暗号ブック

あなたと友人が、秘密の数字で手紙をやり取りしています。

  • 1番 = 「おはよう」
  • 2番 = 「ありがとう」

あなたが「1」と書いた手紙を送れば、友人は手元の本を見て「あ、おはようって意味だな」と翻訳して読みます。
これが文字表示の仕組みです。

2. 「文字化け」はルールブックの食い違い

では、なぜ文字化けが起こるのでしょうか?
それは、世界中に「違う種類の暗号ブック(文字コード表)」がたくさん存在するからです。

悲劇のシミュレーション

  • あなた(送信側)
    「ルールブックA」を使っている。
    ルールブックAでは、数字の「100」は「愛してる」という意味。
  • 友人(受信側)
    「ルールブックB」を使っている。
    ルールブックBでは、数字の「100」は「バカ」という意味。

あなたが愛を込めて「100」を送ったのに、友人の画面には「バカ」と表示されます。
これが文字化けの正体です。

ITの世界では、「Shift_JIS」という本で書いたメールを、「UTF-8」という本で翻訳しようとして失敗する…というパターンが頻発します。

3. 代表的な文字コードの種類(試験に出る!)

ITパスポート試験などで覚えておくべき主要なルールブックは3つです。

① ASCII(アスキー)コード

「アルファベットと数字だけ」の基本セット。
コンピュータ発祥の地アメリカで作られたので、日本語は入っていません。
世界中のあらゆる文字コードの「土台」になっています。

② Shift_JIS(シフトジス)

「Windowsの日本語標準」ルールブック。
昔のパソコンで日本語を使うために日本で作られました。
Windowsのメモ帳やExcelは、長らくこれが標準でした。
しかし、世界基準ではないため、海外のソフトで開くと文字化けしやすいという欠点があります。

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

「世界統一規格(ユニコード)」の決定版。
日本語も、英語も、中国語も、アラビア語も、全部これ1冊に入っています。
現在のWebサイト(ホームページ)やスマホは、ほぼ100%このUTF-8を使っています。

結論:今から作るなら「UTF-8」一択!

プログラミングをする時や、Webサイトを作る時は、必ず設定を「UTF-8」にしましょう。
Shift_JISを使うと、将来的にトラブルの元になります。

4. 「半角」と「全角」の違いはデータ量

日本人がよく悩む「半角カタカナ」や「全角英数」。
見た目の幅が違うだけでなく、実はデータの重さ(バイト数)が違います。

半角文字(1バイト文字)
ASCIIコードにある英数字など。
スイッチ8個分(1バイト)のデータ量で表現できる。
全角文字(マルチバイト文字)
ひらがな、漢字など。
種類が多すぎて1バイト(256通り)では番号が足りないため、2〜3バイト使って表現する。

「会員登録フォームで『半角で入力してください』と怒られる」のは、システム側が「ここは1バイトのデータしか受け付けない箱だよ!」と決めているからです。
そこに太った全角文字(2バイト)を無理やり入れようとするとエラーになるのです。

5. 絵文字も文字コードなの?

最近は🍣(寿司)や🥺(ぴえん)などの絵文字が当たり前に使えますね。
実はこれらも、UTF-8という巨大なルールブックの中に「文字として」登録されています。

「U+1F363」というコードが送られてきたら、「寿司の絵を表示しろ」という世界共通のルールがあるのです。
だから、iPhoneからAndroidに送っても、ちゃんと寿司が表示されるわけです(絵柄は少し違いますが)。

まとめ

  • 文字コードは、文字と数字をつなぐ「翻訳ルールブック」
  • Shift_JISはWindows用、UTF-8は世界標準。
  • 送る側と受ける側でルールブックが違うと「文字化け」する。
  • これからはUTF-8を使っておけば間違いない。

もし文字化けしたメールが届いたら、「おっと、相手は古い暗号ブック(Shift_JISなど)を使ったんだな」と推測して、ブラウザのエンコード設定を変えてみてください。
魔法のように読めるようになるはずです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です