®符号是3字节还是4字节的Unicode字符?我该怎么说?
也称为\ xAE
这样的Unicode字符没有任何字节长度.重要的是字符编码.您可以根据编码的定义知道特定编码中字符的长度(以字节为单位).
例如,在ISO-8859-1(ISO Larin 1)编码中,它只编码一小部分Unicode,包括"®",每个字符长度为1个字节.
在UTF-16编码中,所有字符都是2或4个字节长,U + 0000 ... U + FFFF范围内的字符,例如"®",是2个字节
在UTF-32编码中,所有字符都是4个字节长.
在UTF-8编码中,字符占用1到4个字节.检查这个的一个简单方法是使用Fileformat.info 字符搜索(虽然这不是规范信息,只是一个很好的快速参考).例如,关于U + 00AE的页面显示了某些编码中的字符,包括UTF-8中的0xC2 0xAE(即2个字节).
它是unicode号码U + 00AE.它在[0x80,0x7ff]范围内,因此在UTF-8中它将被编码为两个字节 - 维基百科文章顶部的表格更详细地解释了*.
如果你使用的是UTF-16,它也是两个字节,因为不需要继续.
(*我的总结虽然:UTF-8的一个特性是你可以跳到字节流的中途并与文本同步而不会产生任何虚假字符,因为你可以判断任何字节是否是一个没有进一步上下文的连续字符.
不可避免的副作用是只有7位ASCII字符适合单个字节,其他所有字符都需要多个字节.0xae足够接近7位范围,只需要一个额外字节.有关详细信息,请参阅Wikipedia.)