首页 > 一个汉字在UTF-8中几个字节?

一个汉字在UTF-8中几个字节?

吃完饭和同事聊天,讨论一个汉字在UTF-8中占的字节数,网上说有3个的,也有4个的。
我们常用的,在unicode中,一个汉字的范围是0X4E000x9FA5,我们常用这个来匹配汉字,我们尝试把0x9FA5转成UTF-8,发现还是3个字节,那么我想问问,到底还有没有4个字节的汉字,是汉字。?

补充:根据UNICODE表,发现汉字出现在多个区间内,不仅仅在0X4E000x9FA5,只能说平时用这个区间来匹配汉字是一种不完美的写法。


UNICODE表中,表明有CJK的可能就有汉字,所以不局限于0X4E000x9FA5,OVER。


纠正一下 不是0X4E000X9FA5 而是 \u4EOO\u9FA5

\u0800 - \uFFFF 这个区间内的unicode,以utf-8编码存储,都是占3个字节,所以上述区间内的汉字,全部都是3个字节

但utf-8本身支持1-6个字节,用以覆盖需要用4个字节来表示的所有unicode字符


现在已经有四个字节的汉字了,比如这个 \U00020001
P.S. 字无法直接写出来,SF 直接拒绝存储这种字了…… ٩(๑`^´๑)۶

当前四个字节汉字的范围是 \U00020000 ~ \U0002B81D,未来还会不断扩大,它们都是些非常生僻的字。

http://en.wikipedia.org/wiki/CJK_Unified_Ideographs#CJK_Unified_Ideographs_Extension_D


php的strlen和mb_strlen计算 刘惜君 这三个汉字结果是多少?

【热门文章】
【热门文章】