网站域名在哪里看,微网站风格,网站空间20g,thinkphp做的上线网站一、概念
我们知道计算机是基于二进制来表示数据的#xff0c;那么对于字母和汉字等字符用二进制如何表示#xff1f; 这就需要用一种编码方式将这些字母或者符号转换二进制表示。首先需要对字符集进行编码表示#xff0c;每个编码代表一个固定的字符#xff0c;然后再将字…一、概念
我们知道计算机是基于二进制来表示数据的那么对于字母和汉字等字符用二进制如何表示 这就需要用一种编码方式将这些字母或者符号转换二进制表示。首先需要对字符集进行编码表示每个编码代表一个固定的字符然后再将字符的编码转换成二进制表示。 计算机常用字符的编码主要分为两种Unicode码与ASCII码。
二、Unicode
Unicode 是一种标准的编码系统可以用于几乎所有语言的字符的编码Unicode的出现是因为ASCII等其他编码不能适应更多的字符编码需求。 每个字符使用 0 和 0x10FFFF 之间的唯一整数码位进行编码而其中编码就是一个将一组 Unicode 字符转换为一个字节序列的过程。
2.1 编码方式
Unicode 标准为所有字符都分配一个码位其中Unicode 转换格式 (UTF) 是一种码位编码方式。有三种编码方式如下所示 UTF-8它将每个码位表示为一个由 1 至 4 个字节组成的序列极少数用4~6个字节存储。它的规则如下 1对于单字节的符号字节的第一位设为0后面7位为这个符号的unicode码。 2对于n字节的符号n1第一个字节的前n位都设为1第n1位设为0后面字节的前两位一律设为10。剩下的没有提及的二进制位全部为这个符号的unicode码。 在C#中System.Text.Encoding.Unicode与System.Text.Encoding.UTF8的区别Windows默认的Unicode实现是UTF-16所以C#中Encoding.Unicode就是UTF-16与UTF8不同。
UTF-16介于 UTF-8 和 UTF-32 之间使用 2 个或者 4 个字节来存储长度既固定又可变。UTF-16是分区定义的每个区可以存放 65536 个字符为1个平面共有17个平面。分为基本平面BMP 和辅助平面SMP。常见的字符都在BMP中。
UTF-32一种固定长度的编码方案不管字符编号大小始终使用 4 个字节来存储。 中文对应的Unicode编码见:http://www.chi2ko.com/tool/CJK.htm BOM(Byte Order Mark)是用来区分字节序列和编码方式的UTF-8UTF-16UTF-32。
三、 ASCII
ASCIIAmerican Standard Code for Information Interchange美国信息互换标准代码是一套基于拉丁字母的字符编码。 我们都知道一个字节由8位二进制数构成所以1个字节共有2的8次方种组合。如果每一种方式可以表示一个字符的话那么1字节可以表示256个字符。ASCII 码就是描述英文字符和8 位二进制数的对应关系。 ASCII 码对照表定义了 128 个字符包含 33 个控制字符和 95 个可显示字符。
ASCII 码对照表 彻底弄懂 Unicode 编码