UnicodeとUTF-8の違い
1103 ワード
簡単に言えば、 Unicodeは「文字セット」 UTF-8は「符号化規則」 次のようになります.文字セット:各「文字」に一意のID(コードビット/コードポイント/コードポイント) を割り当てる.符号化ルール:「符号ビット」をバイトシーケンスに変換するルール(符号化/復号化は暗号化/復号化のプロセスと理解できる) .
一般化されたUnicodeは、Unicode文字セットとUTF-8、UTF-16、UTF-32などの符号化ルールを定義する標準である.
Unicode文字セットは、各文字に1つの符号ビットを割り当て、例えば「知」の符号ビットは30693であり、U+77 E 5(30693の16進法は0 x 77 E 5)と記す.
UTF-8は、その名の通り、8ビットを1つの符号化単位とする可変長符号化のセットである.1つのコードビットは1~4バイトでエンコードされます.
上の表の符号化規則によると、前の「知」字の符号ビットU+77 E 5は3行目の範囲に属する.
これがU+77 E 5をUTF-8に従ってバイトシーケンスE 79 FA 5に符号化するプロセスである.逆もまた然り.
リンク:https://www.zhihu.com/question/23374078/answer/24385963出典:著作権は作者の所有であることを知っている.商業転載は著者に連絡して許可を得てください.非商業転載は出典を明記してください.
一般化されたUnicodeは、Unicode文字セットとUTF-8、UTF-16、UTF-32などの符号化ルールを定義する標準である.
Unicode文字セットは、各文字に1つの符号ビットを割り当て、例えば「知」の符号ビットは30693であり、U+77 E 5(30693の16進法は0 x 77 E 5)と記す.
UTF-8は、その名の通り、8ビットを1つの符号化単位とする可変長符号化のセットである.1つのコードビットは1~4バイトでエンコードされます.
U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
上の表の符号化規則によると、前の「知」字の符号ビットU+77 E 5は3行目の範囲に属する.
7 7 E 5
0111 0111 1110 0101 77E5
--------------------------
0111 011111 100101 77E5
1110XXXX 10XXXXXX 10XXXXXX ( )
11100111 10011111 10100101
E 7 9 F A 5
これがU+77 E 5をUTF-8に従ってバイトシーケンスE 79 FA 5に符号化するプロセスである.逆もまた然り.
リンク:https://www.zhihu.com/question/23374078/answer/24385963出典:著作権は作者の所有であることを知っている.商業転載は著者に連絡して許可を得てください.非商業転載は出典を明記してください.