##文字コード
コンピューターは2進数しか扱えないので、ある2進数を特定の文字だと思い込ませる。これを文字コードと呼びます。
もう少し細かく言うと、文字集合を定義し、その集合の各文字に対応するビット組み合わせを一意に定めたもの。
ただ人間が2進数を読むのは辛いので、一般的に文字コードは16進数で表されます。
##主な文字コード
###ASCII
英数字と一部の記号のための文字コードです。もっとも基本的な文字コードとして全世界に普及しているものです。
「アルファベット」「数字」「記号」「改行コード」等を1バイトで表現します。
###UTF-8
ASCIIを拡張して作られています。
全世界の文字に適用する目的で作成された文字コードです。世界中の多くのソフトウェアは、UTF-8に対応しています。そのため、「パソコンの世界共通語」と言っても過言ではありません。
2〜6バイトで表現されています。(日本語の文字は基本的に3バイトで表現します。)
ちなみに「亜」という文字は、「E4BA9C」で表します。
###Shiift-JIS
ASCIIを拡張して作られています。
日本語の文字のための文字コードで、日本語を使用する際には最も一般的に普及している文字コードのひとつです。
「半角カタカナ」は1バイトで表現し、それ以外の全角文字は2バイトで表現します。
ちなみに「亜」という文字は、「889F」で表します。
###UTF-16
ASCII拡張ではありません。
UTF-16は、多くの文字を対応し、様々な場面で使われていますが、UTF-8より対応するソフトウェアは少ないです。
世界中の文字全てを2バイトで表現し、残りのマイナーな文字を4バイトで表現します。そのため、半角アルファベット、半角数字、日本語のほとんどが2バイトで表現されます。
ちなみに「亜」という文字は、「4E9C」で表します。
##符号化文字集合と符号化形式
世の中にはたくさんの文字コードがあります。Shift-JIS、UTF-8、JIS X 0208、EUC-JP、Unicode、Shift-JIS、Latin1等。これらは一つの文字コードという概念ではなく、
符号化文字集合と文字符号化方式という二つの概念が存在し、これらが組み合わさって文字を表しています。
######主な符号化文字集合
- Unicode
- JIS X 0208
#####主な符号化形式
- Shift-JIS (符号化文字集合:JIS X 0208)
- UTF-8 (符号化文字集合:Unicode)
- UTF-16 (符号化文字集合:Unicode)
##文字化け
各文字コードには、表現できる文字の範囲があり、対応していない文字の場合は、変換できずに代替文字が割り当てられます。特にShift-JISと、UTF-8やUTF-16の相互の変換で発生しやすいです。
##まとめ
上記の主な文字コードの「ちなみに文」でもわかるとおり、文字コードによって16進数コードが全然違うことがわかります。
またASCIIとUTF-8には互換性があることがわかります、UTF-8選ばれている理由ですねー
今回はShift-JISに対応したソフトウェアにUTF-8を使用したことで文字化けしました。