メールを開いたら、「縺ゅ>縺??」のような意味不明な記号が並んでいた…。
この不気味な現象を「文字化け(もじばけ)」と呼びます。
「何も悪いことしてないのに、なんで?」と焦りますよね。
これは、コンピュータ同士の「言葉の行き違い」が原因です。
この記事では、文字コードという仕組みを「スパイの暗号ブック(翻訳表)」に例えて解説します。
これを読めば、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など)を使ったんだな」と推測して、ブラウザのエンコード設定を変えてみてください。
魔法のように読めるようになるはずです。