2011-05-16 17:10来源:武汉北大青鸟鲁广校区作者:admin
System.text命名空间
.Net Framework中这个命名空间是有关对文本进行操作的类集。具体可分为编码解码相关;字符串操作相关;正则表达式相关,这样三个组成部分。
编码/解码
在ASP.NET开发中一般不用我们自己写程序实现对文本的编码解码。通常只需要对当前Page页进行设计时或运行时的编码指定即可,默认情况下则会使用UTF-8这种编码。
从更低的层次来看,计算机处理的数据就可看作是文本与二进制数据。需要编解码的就是文本的数据,二进制数据根本不需要编解码。
编码就是把文本处理为字节集,实现让计算机对数据进行处理,传递与存储;解码则是把字节集处理为对人类而言有意义的文本,并由输出设备输出。
Net Framework内部使用UTF-16这种编码格式处理文本。
Net Framework中处理编码解码的类位于System.text命名空间。这包括Encoding抽象基类及其派生类;Encoder/Decoder类。
Encoding
Encoding是个抽象类,必须继承使用。但是它有一组静态属性和方法,用来返回Encoding的派生类的实例。例如:Encoding.UTF8属性,返回的是UTF8Encoding类实例。
Encoding的派生类的实例也可以通过NEW构造函数而得。
Encoding的多个表示不同编码的派生类,来具体完成编码和解码的任务。注意:还有解码哦!
既然Encoding的派生类能完成编码解码的任务,为什么还需要Encoder/Decoder呢?在网络传输时,我们有可能是把数据分几次来传输;在对文件进行读写时也可能是分多次来进行。问题就在于多次。假设我们某一次传输的字节集,其数量不足以处理为有效的文本,麻烦就来了,例如汉字”未”用UTF-8编码后是三个字节,如果我们只传输了2个字节,解码后的就是乱码而不是汉字”未”。Encoder/Decoder这两个编解码类,就是用来处理这样的问题。用他们进行编解码时,如果字节集不足以完解码,就先解码一部分,剩下的字节集暂时保留在Decoder中,等待下一次字节集的传输,这样就能保证被解码的是正常的文本。
Copyright (c) 2006-2020 武汉宏鹏职业培训学校 版权所有 All Rights Reserved.