汉字编码与ASCII编码有何区别
通常汉字用的是unicode码,在windows sdk中是BSTR _bstr_t等数据类型,对于一个unicode字符,转换成acsii 下的char类型需要占两个字符.二者之间可以用下面的方法转换:
char *p; _bstr_t v;
ascii->unicode: (v->p) p = __util::ConvertBSTRToString(v);
unicode->ascii: (p->v) v = __util::ConvertStringToBSTR(p);
eg:"中"相应的unicode码为D6D0
一个汉字是两个字节组成的,每个字节可以看成一个ASCII编码.
ASCII 的值 以及 编码 是什么意思
首先,ASCII是字符编码.全称美国标准信息交换代码,用于基础的英文等字符显示,是最基础的单字节字符编码系统.
ASCII分为基础ASCII码(0~127)和扩展ASCII码(0~255),基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符.
通常说,码值、编码值都是字符对应的数值,至于具体数值使用哪种进制表示并不重要,进制不是ASCII编码的直接要求,通常为了方便,多数采用十六进制表达(更接近机器语言)或十进制表达(更方便人的理解)两种方式.二进制和八进制
也偶尔用到,一般除了学习时的练习,更多的是为了方便计算更加直观.
3,ascii编码和unicode编码的区别
近日需要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了,
下面全是从网上搜来的:
1. ASCII和Ansi编码
字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为
单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码.
双字节内码 -- Double-Byte character sets)(
DBCS),可以支持个字符编码.
前者即为ASCII编码,后者对应ANSI.
至于简体中文编码GB2312,实际上它是ANSI的一个代码页936
2. Unicode
如上,ANSI有很多代码页,使用不同代码页的内码无法在其他代码也正常显示,这就是为什么日文版/繁体中文版游戏无法在简体中文平台直接显示的原因.
Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案.它是一种2字节编码,能够提供个字符,这个数字是不够表示所有的字符的(汉语就有多字符),所以,通过一个代理对的机制来实现附加的917,476个字符表示,以达到所有字符都具有唯一编码.
3.Unicode和BigEndianUnicode
这两者只是存储顺序不同,如"A"的unicode编码为65 00
其BigEndianUnicode编码为00 65
4. UTF-8
这是为传输而设计的编码,其系列还有UTF-7和UTF-16
其中UTF-16和Unicode编码大致一样, UTF-8就是以8位为单元对Unicode进行编码.从Unicode到UTF-8的编码方式如下:
Unicode编码(16进制) UTF-8 字节流(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
例如"汉"字的Unicode编码是6C49.6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx.将6C49写成二进制是:0110 , 用这个比特流依次代替模板中的x,得到: ,即E6 B1 89.
ANSI:系统预设的标准文字储存格式.ANSI是American National Standards Institute的缩写.它成立于1918年,是一个自愿爱的组织,拥有超过1300个会员,包括所有大型的电脑公司.ANSI专为电脑工业建立标准,它是世界上相当重要的标准.
Unicode:世界上所有主要指令文件的联集,包括商业和个人电脑所使用的公用字集.当采用Unicode格式储存文件时,可使用Unicode控制字符辅助说明语言的文字覆盖范围,如阿拉伯语、希伯来语.用户在"记事本"中输入含有Unicode字符的文字并储存文件时,系统会提示你必须选取"另存为"中的Unicode编码,这些字符才不会被遗失.需要提醒大家的是,部分Windows 2000字型无法显示所有的Unicode字符.如果发现文件中缺少了某些字符,只需将其变更为其它字型即可.
Unicode big endian:在Big-endian处理器(如苹果Macintosh电脑)上建立的Unicode文件中的文字位元组(存放单位)排列顺序,与在Intel处理器上建立的文件的文字位元组排列顺序相反.最重要的位元组拥有最低的地址,且会先储存文字中较大的一端.为使这类电脑的用户能够存取你的文件,可选择Unicode big-endian格式.
UTF-8:UTF意为通用字集转换格式(Universal Character Set Transformation Format),UTF-8是Unicode的8位元格式.如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可选择UTF-8格式.
什么是ASCII编码?
目前计算机中用得最广泛的字符集及其编