エンコーディングとは?
文字コードや方式を解説
エンコーディングはインターネットやメール、電子書籍、動画など多くの場面で用いられている技術のひとつで、デジタルコンテンツが正常に動作する際に欠かせないものです。
エンコーディングとは何なのか?どんな方式があるのか?など、エンコーディングについて初心者にもわかりやすく解説します。
エンコーディングとは?
エンコーディング(encoding)とは、データを一定の規則に従って目的の情報に変換することです。
日本語では「符号化」となり、変換された後の情報のことをエンコード(encode)と呼びます。
エンコーディングは、文字コード、映像、HTML、XML、URLなど、幅広い場面で使われており、エンコーディングによって正しく文字を表現したり、信号や情報の通信をデジタル化したり、データの圧縮などが実現しています。
なかでも、多くの人にとって身近なエンコーディングが「文字エンコーディング」でしょう。(略してエンコーディングと呼ばれる)
文字エンコーディングとは、HTMLやXMLなどのテキストをどのような文字コードを使用し、どのような形式で表示するかということです。
ウェブサイトやメール、電子書籍などは「文字エンコーディング」により、文字化けが起こることなく、正常に文字や文章が表示されています。
エンコーディングは非常に広い意味を持っていますが、一般的にエンコーディングと言えば「文字エンコーディング」を指していることがほとんどです。
文字コード
コンピューターで文字を扱う際には、文字を整理したうえで、それぞれの文字に一定の規則に従った番号を割り当てるエンコーディングをおこないます。
これを「符号化文字集合(coded character set)」と呼び、一般的には「文字コード」と言われています。
例えば、日本では以下が該当します。
- JIS X 0201
- JIS X 0208
- JIS X 0213
アメリカでは「ASCII(American Standard Code for Information Interchange)」が使われています。
昨今では、よりグローバルな文字コードとして「Unicode」が使われており、Unicodeが文字コードの主流になりつつあります。
エンコーディング方式について
次に、エンコーディング方式について見てみましょう。
Unicode
世界中で最もよく使われている文字コードが「Unicode」です。
Unicodeは、世界中の文字を扱えるようにしたISO(国際標準化機構)規格の文字集合のことです。
Unicodeにはいくつかのエンコード方式があります。
UTF-8
- Unicodeの符号を8ビット単位で表す
- 1バイトから4バイトまでの可変長
- ASCIIとの互換性有り
- BOM(バイト・オーダー・マーク)不要
- HTMLやXMLファイルのデフォルトエンコーディング
UTF-16
- Unicodeの符号を16ビット単位で表す
- 2バイトまたは4バイトの固定長
- Javaの文字列表現など内部的な表現として使われる
- 非ASCII互換
UTF-32
- Unicodeの符号を32ビット単位で表す
- 4バイト固定長
その他のエンコーディング方式
Unicodeが主流になりつつある一方で、日本語のエンコーディングでは現在も以下のふたつが使われているので知っておきましょう。
Shift_JIS
初期のマイクロソフトOSで採用されていたことから日本国内で広く使われています。
JIS X 0201(1バイトのアルファベットとカタカナ)、JIS X 0208(かなと第二水準までの漢字コード)を組み合わせて使う可変長のエンコーディング方式です。
Unicodeにとって代わられつつあります。
ISO-2022-JP
インターネット上(とくに電子メール)で使われている日本語用のエンコーディング方式で、一般的にはJISコードと呼ばれています。
Shift_JISと同様にUnicodeにとって代わられつつあります。