char区分Unicode和非Unicode

首先,我们来区分一下字符和字节的概念:

      字符:人们使用的记号,抽象意义上的一个符号,如'1', '中', 'a'等;

      字节:计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间。也可以看做一个存储空间的单位。

 

C#中的char类型为16位,2字节,表示 Unicode 字符,用于表示U+0000 到 U+ffff范围内的Unicode字符。Unicode 标准使用称为码位的唯一的 21 位标量数字标识每个 Unicode 字符,并定义了 UTF-16 编码格式,这一格式指定如何将码位编码为一个或多个 16 位值的序列。每个 16 位值的范围为十六进制的 0x0000 到 0xFFFF,并存储在 Char 结构中。Char 对象的值是其 16 位数字(序号)值。(摘自:MSDN)

 

但在C++中的char类型为8位,1字节,表示一个字节;其用于表示Unicode字符的类型为wchar_t。

在UNICODE中,计算机存放字符串时,改为存放每个字符在Unicode字符集中的序号。目前计算机一般使用2个字节(16位)来存放一个序号,因此这种方式存放的字符也被称为宽字节字符。用来给UNICODE字符集编码的标准有很多种,比如:UTF-8, UTF-7, UTF-16, UnicodeBig等。

 

推荐大家看得网页:http://www.x5dj.com/Blog/00894834/00647031.shtml,其中详细介绍了字符,字节和编码的问题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值