FCL提供的编码方式-笔记-编码方式

FCL提供的编码方式中最常用的是UTF-16和UTF-8:


UTF-16(Unicode编码)将每个16位字符编码成2个字节。它不会对字符产生任何影响,而且不会涉及压缩处理——性能非常出色。
可以用于从“低位优先”转换成“高位优先”,或者从“高位优先”转换成“低位优先”。


UTF-8将部分字符编码成1个字节,部分字符编码成2个字节,部分字符编码成3个字节,以及部分字符编码成4个字节。值在0x0080之下的字符压缩成1个字节,它们适用于表示英美地区使用的字符。0x0080—0x07FF的字符被转换成2个字节,它们适用于欧洲和中东语言。最后代理项对被表示成4个字节。UTF-8是一种极其流行的编码方案。但是,如果要编码的许多字符都具有0x0800或者之上的值,那么它的效率不如UTF-16。
FCL还支持一些不常用的编码方案:UTF-32(使用4个字节来编码所有字符),UTF-7(不推荐使用),ASCII编码。


ASCII编码方案将16位字符编码成ASCII字符;也就是说,值小于0x0080的16位字符被转换成单字节。值超过0x007F的任何字符都不能被转换,否则字符的值会丢失。假如字符串完全由ASCII范围(0x00-0x7F)内的字符构成,ASCII编码方案就能将数据压缩到原来的一半,而且速度非常快(因为高位字节被直接截掉)。如果一些字符在ASCII的范围之外,这种编码方案就会导致字符的值丢失。


除此之外,FCL还允许将16位字符编码到一个任意的代码页。和ASCII编码一样,编码到一个代码页是危险的,因为其值不能在指定代码页中表示的任何字符都会丢失。

 

 

System.Text.Encoding类提供了一下静态属性:Unicode,BigEndianUnicode,UTF8,UTF32,UTF7,ASCII和Default。Default属性返回一个对象,它能使用户当前的代码页来进行编码/解码。当用户的代码页是通过控制面板的“区域和语言选项”对话框的“高级”选项卡来指定的。然而,并不鼓励开发人员使用Default属性,因为这样一来,应用程序的行为就会随着机器的设置而变。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值