C# byte、string、char、unicode的相关性。

经常会遇到需要转换字节数组和字符数组,以及编码问题。

即便是老手,都不一定能搞明白他们的关系。除非你回去看书,把基础复习一遍记下来打牢。

string:是字符串的意思。

char:是字符的意思。它用于表示字符。但字符可能是2个char组成的,不过大多数情况下,一个字符,对应一个char。

byte:表示字节。

unicode:编码,它包含了这个星球的所有语言。所以又有别称“万国码”。

 

好的,下面重点:

一个字符串string,通常由N个字符char组成,所以,string.length,就是N。

但由于存在2个char组成1个字符的情况,所以判断一个string有几个字(如汉字、表情等),则不一定是等于string.length。

通常,表情,就是由2个char来组成一个字符,这个字符代表这个表情。

每个字,都有对应的一个unicode,所以,一个unicode,就可能是由2个char组成的。

一个char通常是16位的,一个byte通常是8位的。所以每个char,可以用2个byte来表示。

byte的最小值是0,最大值是255。

char[]和byte[]基于上面的逻辑,可以进行相互的转换。

 

综上,一个unicode大多数时候对应一个char,但特殊的(如表情)可能是对应2个char。字符串string的长度length,就等于有几个char的实例。字符串中包含几个字,不一定等于char的个数,也不一定等于char的个数的一半。

 

针对这些知识,我也没有那么懂,不是懂王。。。

 

祝您用餐愉快。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值