Chinaunix首页 | 论坛 | 博客
  • 博客访问: 746621
  • 博文数量: 96
  • 博客积分: 2023
  • 博客等级: 上尉
  • 技术积分: 1738
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-15 10:03
文章分类

全部博文(96)

文章存档

2014年(11)

2012年(85)

分类: WINDOWS

2012-03-15 18:38:51

    今天遇到了C#编程中的托管与非托管类型之间的数据传送,中间碰到了关于StructLayout设置中的CharSet,看看了参数类型CharSet的成员,其中有ANSI和UNICODE,现针对这两种编码方式说一下我自己的理解:
    1.编码方式:最大的区别就是ANSI中的字符采用8bit,UNICODE中的字符采用16bit。UNICODE针对中英文字符采用的都是双字节,但是ANSI用单字节表示英文字符,双字节表示中文字符。很显然,8比特的ANSI编码最多表示256种字符,再加上词类丰富的汉语言特点、其他国家的韩语、日语等不足以表示出的,这也是UNICODE编码出现的原因之一。
    2.应用:现在的网络、windows操作系统以及很多大型软件中使用的UNICODE编码。但是目前windows系统中的记事本默认是ANSI编码,比如当txt文档中一切字符都在 C0≤AA≤DF 80≤BB≤BF 这个范围时,notepad都无法确认文档地格式,没有自动依照UTF-8格式来"Display"。 而"联通"就是C1 AA CD A8,刚好在上面地范围内,所以不能正常显现。所以当我们在文本文档中只存储了联通两个字时再次打开会是乱码,当然了,我们可以以unicode、unicode big endian、UTF-8的编码方式存储,这样乱码就可以避免了。
   
  以上只是一些浅层的区别,关于深入的系统内部叙区别以及使用需要额外多查阅资料了。。
阅读(1318) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

ArliceDOTlice2012-03-19 10:23:32

我是一粒糖: UNICODE编码嘛~初衷就是为了通用的!~~.....
嘿嘿,学习ing。。

我是一粒糖2012-03-19 01:30:47

UNICODE编码嘛~初衷就是为了通用的!~~