不同编码里,字符和字节的对应关系不同吗?
不同编码里,字符和字节的对应关系不同,与编码方式有关。
常见的编码字符与字节的对应关系如下:
1、ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。
2、UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
3、Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。
符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
4、GBK编码方式是中文占两个字节,英文占1个字节。
UTF-8是一种很常用的编码方式,正是因为UTF-8的字符数和字节数的换算不固定,导致你无法从UNICODE字符数判断出UTF-8文本的字节数。
UTF-8是一种变长编码,它需要用2个字节编码那些用扩展ASCII字符集只需1个字节的字符。
ISO Latin-1 是UNICODE的子集,但不是UTF-8的子集 8位字符的UTF-8编码会被email网关过滤,因为internet信息最初设计为7位ASCII码。因此产生了UTF-7编码。
UTF-8 在它的表示中使用值100xxxxx的几率超过50%, 而现存的实现如ISO 2022, 4873, 6429, 和8859系统,会把它错认为是C1 控制码。因此产生了UTF-7.5编码。
参考资料来源:百度百科-字符
参考资料来源:百度百科-字节
参考资料来源:百度百科-编码