Unicode编码
UTF8与Unicode
Unicode
Unicoide 的全称是 Universal Multiple-Octet Coded Character Set(通用多八位字符集,简称 UCS)。
规定了各种字符的编码。
而下面都是具体的编码二进制的存储方式。
UTF-32
规定,一个字符使用四个字节存储,也就是 32 位,这样就能涵盖现有 Unicode 包含的所有字符。
UTF-16
UTF-16 用二个字节来表示基本平面,用四个字节来表示扩展平面,是一种变长编码方式。
偷一张图
UTF-8
而UTF-8也是一种变长编码方式,规定了如何存储。
UTF-8 的编码规则如下(U+ 后面的数字代表 Unicode 字符代码):
UTF-8 通过开头的标志位位数实现了变长。对于单字节字符,只占用一个字节,实现了向下兼容 ASCII,并且能和 UTF-32 一样,包含 Unicode 中的所有字符,又能有效减少存储传输过程中占用的空间。
对应C#的Encoding类
Encoding.Default
取决于电脑的.net环境的设置。
char
仅就C#中的string或者char并不存在编码一说,无论是Convert.ToInt32(c)
或者(char)20013
等都仅仅是和Unicode定义的字符顺序。
和任何编码都没有关系,只有在字符保存在文件中,或者用socket传输以及控制台的输入输出流才会涉及编码。
Unicode编码
https://www.kuanmi.top/2023/02/06/string/