®符号是3字节还是4字节的Unicode字符?我该怎么说?
也称为\ xAE
答案 0 :(得分:7)
这样的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 Character search(虽然这不是规范信息,只是一个很好的快速参考)。例如,page about U+00AE显示某些编码中的字符,包括UTF-8中的0xC2 0xAE(即2个字节)。
答案 1 :(得分:5)
是unicode号码U + 00AE。它在[0x80,0x7ff]范围内,因此在UTF-8中它将被编码为两个字节 - the Wikipedia article顶部的表格更详细地解释*。
如果您使用的是UTF-16,那么它也是两个字节,因为不需要继续。
(*我的总结虽然:UTF-8的一个特点是你可以跳到字节流的中途并与文本同步而不会产生任何虚假字符,因为你可以判断任何字节是否是一个连续字符而没有进一步的背景。
不可避免的副作用是只有7位ASCII字符适合单个字节,其他所有字符都需要多个字节。 0xae足够接近7位范围,只需要一个额外字节。有关详细信息,请参阅维基百科。)