一 字节和编码基础
1.1字节
字节是二进制数据的单位,一个字节通常为8位二进制数字序列。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。
1.2编码
涉及到字符集和编码
ASCII字符集:一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值-128,最大值127。一个ASCII码就是一个字节。
Unicode字符集:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节。Unicode/UCS 标准首先是个统一的字符集标准。而 Unicode/UCS 标准同时也定义了几种可选的编码方案,在标准文档中称作「encoding form」,主要包括 UTF-8、UTF-16 和 UTF-32。
UTF-8编码:UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。
ANSI字符集:是字符代码,是扩展的ASCII.在中文和日文操作系统里生成的(txt和xml)文件的编码虽然都是ansi,但是,在简体中文系统下,ansi 编码代表 GB2312 编码,在日文操作系统下,ansi 编码代表 JIS 编码。
二 32位系统和64为系统的区别
2.1 字、字节和位
字是一次处理的一串数码,字分为若干个字节,一个字节8位。
2.2 32位系统和64位系统的区别
字长:计算机的每个字所包含的位数称为字长。32和64是计算的字长,计算的字长是指它一次可处理的二进制数字的数目。
三 c#中的编码
string str = "abc123中文汉字";
int i = System.Text.Encoding.Default.GetBytes(str).Length;
系统默认是UTF-8,i是18.