記事検索

検索ワードを入力してください。
Sky Tech Blog
文字に​ついて。​~コンピュータ上での​扱い方​~

文字に​ついて。​~コンピュータ上での​扱い方​~

この記事では、コンピュータ上での文字の扱いについて説明しています。文字コードの基本概念、代表的な文字コード表、文字コードの識別問題、解決方法などについて解説します。

日常で見ないことがない「文字」。
そんな「文字」はコンピュータ上ではどのように扱われているのでしょうか?

① 文字の​扱い​~文字コード

例えば「A」という文字を題材にしてみましょう。コンピュータの世界では「A」という文字は多くの場合、16進数で「0x41」という1バイトのデータとして扱われます。

この「A=0x41」のような文字とデータ(値)の組み合わせを「文字コード」と呼びます。

「0x41」というデータが登場した際に、「0x41はA」ということが明らかなため、「A」を表示するために必要な画像(フォント)と引き当てを行い、モニターに「A」という文字を表示します。

このような文字コードの組み合わせの群を「文字コード表」と呼び、様々な文字コード表が存在します。

古典的で代表的な文字コード表として「ASCIIコード」という7bitのコード表が存在します。

② 多様な​文字コード表

ASCII以外にも多様な文字コード表が存在します。

日本でよく扱われるものとしては、

  • JISコード表(ISO-2022-JP)
  • Shift-JISコード表
  • Unicodeコード表

など、より効率的に、より多様な言語文字に対応できるように進化を遂げてきました。

③ 困った​こと

文字コード表も進化を遂げてきましたが、困ったことが発生しました。

進化の過程で世の中に「複数の文字コード表」が共存することになり、

  • 「このデータはJISコード表で記述されている」
  • 「このデータはShift-JISコード表で記述されている」
  • 「このデータはUnicodeコード表で記述されている」

ということを「識別」することが難しい(またはできない)という問題です。

文字コード表を識別できない場合、どのような問題が発生するか、実例を見てみましょう。

  • パターンA:Shift-JISで記述されたファイルをUnicodeだと思って開いてみる。

  • パターンB:Unicodeで記述されたファイルをShift-JISだと思って開いてみる。

どうでしょうか。何が何だかわかりませんよね。これは同じ文字を示すコードが「コード表間で異なること」が原因です。

例えば「文字」という文字を表す文字コードを確認してみましょう

このように、同じ「文字」でもそれを表す文字コード(データ)が異なることがわかります。

④ 解決方​法

このような事態を避けるために対策としては「このデータは何の文字コードで記述されているか」を事前に通知する必要があります。

【Webサイト(HTML)】
HTMLでは「meta charset」tagにて文字コードを指定することができます。

【テキストファイル】
テキストファイルの場合、UnicodeなどではBOM(ビット・オーダー・マーク)という、特別なデータがファイルの先頭に記述されていることがあり(※)、事例に挙げている「Unicode(UTF-16 Big-endian)」の場合は「0xFE,0xFF」という2バイトのデータが先頭に付与されています。
※必須ではない為、ない場合も……。

BOMが存在する場合は「Unicodeの何かしらのパターンで記述されている」ことがわかる為、BOMに対応するUnicodeの解釈の仕方をすることが可能です。

実はこれ、これまでの説明で登場しており、UnicodeのファイルをShift-JISで開いた際の先頭にある文字化けはこのBOMが文字化けしたものだったんです。

⑤ 締め

いかがでしたでしょうか。文字がどのようにコンピュータ上で扱われているかについて理解ができたでしょうか。

文字コードについては各言語、各国の産業規格、ベンダーの独自規格など、一筋縄ではいかない経緯がある為、中々解決しない問題ですが、昨今はUnicodeが主流になりつつあり、一定の標準化が進められています。

皆さんが日頃見る「文字」がどのように扱われているのかの理解に繋がれば幸いです。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム