character encodingのこと。文字集合(character set)を具体的なビット列に配置したもの。一般に、「文字コード」という語が用いられるとき、文字集合と文字符号化方式をひっくるめて漠然と指している場合や、両者の一方を話題にしているのに混同している場合などがあり、議論が混乱しがちである。
文字コードって、とっても難しいです。 そんな文字コードの中で、文字符号化方式について、可能な限りわかりやすく解説します。 1.UTF-16 と UTF-32 ISO-2022-JP や EUC-JP 、Shift-JIS は、複数の文字集合を利用するための文字符号化方式です。 それに対して、UTF-16 や UTF-32、UTF-8 といった文字符号化方式は、使用している文字集合は Unicode のみです。 それなら Unicode を直接利用すれば良いのでは?と普通の人は思います。 そして実際に最初は Unicode を直接利用していました。Java や C# などは今は UTF-16 を…
文字コードって、とっても難しいです。 そんな文字コードの中で、文字符号化方式について、可能な限りわかりやすく解説します。 1.文字符号化方式とは ASCⅡができたころは、「符号化文字集合」と「文字符号化方式」の区別はありませんでした。 ASCⅡ が ISO/IEC 646 として国際規格化され、JIS X 0201 や各国の文字集合ができ、それらの文字集合を混在して利用したいといったニーズと、漢字などを扱いたいというニーズから、ISO/IEC 2022 が誕生し、これが文字符号化方式のベースとなりました。 その後、ISO/IEC 10646(Unicode)が誕生し、現在の文字符号化方式は I…
はじめに 今回はUnicodeに対して複数の符号化方式がある理由についてまとめていきます。 そも、Unicodeって? 世界中の文字を統一して扱うための標準化された文字セットのことです。もっと噛み砕くと、文字に割り当てられた識別番号(コードポイント)のことです。 この割り当てられたコードポイントの大きさ(バイト)を決めるために文字符号化方式を使用します。 識別番号をそのままの大きさで扱えばいいやん? ※普通の方はそうは思わないかもですw そうです。わざわざ符号化方式なんてしなくて識別番号の大きさ文字を扱ったらいいです。 →甘いです。 例えば「a」に対応するUnicodeのコードポイントは「U+…
はじめに 開発をしているとよく文字化けが起きますよね。 文字化けについてよくわかっていなかったので、書き下していきます。 文字コード 文字化けの原因を理解するためには文字コードについて理解する必要があります。 文字コードには 符号化文字集合 文字符号化方式 があります。 符号化文字集合 符号化文字集合は特定の文字を番号で表したもの集合(表)です。 符号化文字集合にはJIS X 0208、Unicodeがあります。 文字符号化方式 文字符号化方式は、符号化文字集合を機械語にするときの方式(表)です。 文字符号化方式は、Shift-JIS、UTF-8、UTF-16などがあります。 文字化けの原因 …
サロゲートペアというものを、雰囲気で知った気になっているのはよくないので整理しました。 正確性や正しい言葉の定義は置いておいて、どういうものなのかをざっくりと説明します。 そもそも「サロゲートペア」とは、Unicode にて登場する概念なので、まずは Uncode についてしっかり理解していきます。 Unicode とは? Unicode は世界中の文字を固定長の16bitで表そうとした「符号化文字集合」です。 「符号化文字集合」とは、使える文字とbit値の一覧表です。 たとえば↓のようなイメージで、文字を bit列に変換する対応表、と思ってOKです。 符号化文字集合 当たり前ですが、コンピュ…
はじめに MySQL 5.7 から 8.0 への変更点の1つとして、文字セット(charset)が latin1 から utf8mb4 になり、utf8mb4 の場合の照合順序(collation)が utf8mb4_0900_ai_ci になる、というのがあります。 この文字セットと照合順序について調べたことをメモしておきます。