UTF-8 中的所有汉字字符都是 3 个字节长吗?

Posted

技术标签:

【中文标题】UTF-8 中的所有汉字字符都是 3 个字节长吗?【英文标题】:Are all Kanji characters in UTF-8 3 bytes long? 【发布时间】:2011-04-10 09:00:43 【问题描述】:

有人可以确认中文中的所有汉字字符在 UTF-8 中都是 3 个字节长吗?

【问题讨论】:

【参考方案1】:

是的,汉字是 U+4e00 到 U+9faf,UTF8 3 个字节是 U+0800 到 U+FFFF。

【讨论】:

【参考方案2】:

常用的汉字/汉字字符在 U+4E00 和 U+9FFF 之间的“CJK 统一表意文字”块中,在 UTF-8 中占 3 个字节。 (日文平假名和片假名也占 3 个字节。)

但是,“CJK Unified Ideographs Extension B”和“CJK Compatibility Ideographs Supplement”块中也有一些很少使用的字符,在 UTF-8 中占用 4 个字节。

还要注意,中文文本通常包含 ASCII 字符,例如数字 0-9。

【讨论】:

源自 Shift-JIS 的日文文本也可能包含映射到两字节序列的其他非汉字、非 ASCII 字符。然后我们很快就会有表情符号来应对,它们也在基本多语言平面之外,所以 4 个字节...... @sleske:不,我不会中文。我刚刚在字符编码方面做了太多工作。 @sleske 还有……这是互联网。 SO 的人很可能会说您从未听说过的语言。 在日语堆栈交换中也可以看到这个问题:japanese.stackexchange.com/q/6872/16273——显然一些“很少使用”的字符并不是那么罕见。

以上是关于UTF-8 中的所有汉字字符都是 3 个字节长吗?的主要内容,如果未能解决你的问题,请参考以下文章

python中一个汉字点3个字节? utf-8

字符集与字符编码详解

编码初识

c语言中字符型数据在内存中的存储形式是?

取指定的字符串,字符串里面有汉字和字母

测试utf-8 汉字和字符等一般占多少个字节