字符编码等记录
了解下字符编码:
计算机使用一个数字编码来表示每一个字符,对每个字符规定唯一的数字代号,这些用来规定每一个字符所使用的代码的表格,就称为编码表。编码就是我们对日常使用字符的一种数字编号。
1:第一张表:ASCII表
用(数字0~127)代表了常用的128个字符,使用了7位二进制
最常用的中文编码表GB2312中文字多,使用单字节(128个)无法满足中文需要。所以GB2312采用2个字节表示一个汉字
为了解决全球编码的通用,UNICODE编码规定所有的字符用2个字节表示.但是现在还有很多的软件,硬件采取的是单字节编码。使用又有了新的编码UTF-8
UTF-8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。
GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换
我的理解:Unicode都是双字节的,非Unicode中English是单字节,中文双字节。
VarChar()存储非Unicode数据 NvarChar()存储Unicode数据 占用空间是前者的2倍
‘"x’ 转义字符"x加上2位16进制,输出ASCII码
‘"u’ 转义字符"x加上4位16进制,输出Unicode码
例如:小写字母a 的ASCII码是 97 (97的16进制是61)
Response.Write((char)97)、Response.Write('"x61')和Response.Write('"u0061')都可以输出字母a
0xFFFF :0x 16进制的标志