Encoder 类:MSDN,将一组字符转换为一个字节序列。
Encoding 类:MSDN,表示字符编码。我知道Decoder是解码器
Encoder和Encoding有什么区别啊?实在搞不懂
Encoder和Encoding都有GetBytes方法,都是将一组字符编码到指定字节数组中请指教啊
Encoding 类:MSDN,表示字符编码。我知道Decoder是解码器
Encoder和Encoding有什么区别啊?实在搞不懂
Encoder和Encoding都有GetBytes方法,都是将一组字符编码到指定字节数组中请指教啊
解决方案 »
- vs2008怎样获取页面延迟加载内容
- c# 获取本地扫描仪驱动
- C#数据库的修改问题
- SqlCommand对象中的几种执行SQL语句的方法:ExecuteNonQuery,ExecuteReader,ExecuteScalar
- 自定义类 在数组或list中如何应用??
- 在C#中,怎么把IP转换成0xEA060101这样的格式,比如急,谢谢!
- 关于Shockwave Flash Object的COM组件的问题
- 初学者请问如何深入学习c#的webform的开发。
- 对于int型数组能重载运算符吗?
- 如何向oracel数据库中插入图像
- 跪求解决 水晶报表导出PDF问题的显示问题
- get interfaces by handle of Internet Explorer_Server 失败
Encoder..::.GetBytes 方法将连续的字符块转换为连续的字节块,采用的方式类似于该类的 GetBytes 方法。但是,Encoder 在调用之间维护状态信息,因此它可以正确地对跨块的字符序列进行编码。Encoder 还保留数据块结尾的尾部字符并将这些尾部字符用在下一次编码操作中。例如,一个数据块的末尾可能是一个不匹配的高代理项,而与其匹配的低代理项则可能位于下一个数据块中。因此,GetDecoder 和 GetEncoder 在网络传输和文件操作中很有用,这是因为这些操作通常处理数据块而不是完整的数据流。给实现者的说明:默认实现返回一个 Encoder,它调用当前 Encoding 的 GetByteCount 和 GetBytes 方法。您的应用程序必须重写此方法以返回在调用之间维护其状态的 Encoder。
若要获取 Encoder 类某个实现的实例,应用程序应当使用 Encoding 实现的 GetEncoder 方法。可见,一般不直接使用Encoder 类,而是通过Encoding 来获取具体编码规则的Encoder类,或者直接通过Encoding 类操作,否则你不能控制字符编码。
不同class中方法是可以重命名的
new Encoding().GetBytes();
new Encoder.GetBytes()虽然方法相同名可参数确不一样 如果一样要这两个一样的方法做什么微软不会写这种没用代码。Encoding还有.UTF8这样的静态 方法来获取指定编码格式字符串转换的BTYE[]
这个地方有这么一截话:
如果要转换的数据仅存在于连续块(如从流中读取的数据)中,或者如果数据量很大,需要划分为较小的块,则应用程序应当使用由某个派生类的 GetDecoder 方法提供的 Decoder 或由该派生类的 GetEncoder 方法提供的 Encoder。
请帮忙理解一下这截话,我不太能理解....也许玄机就在这里面
http://msdn.microsoft.com/zh-cn/library/system.text.utf8encoding.getencoder.aspx备注部分说明了它的使用场合,它主要用在不连续的编码或解码中,当数据量过大,或者网络传输中尚未收到全部数据就开始处理是,用这个方法得到Encoder 类或Decoder类,比直接使用Encoding 要好,因为前者维护了数据块结尾的信息,用在下次编码操作中。
对于UTF8编码这种不定长的编码规则是最有意义的,因为不定长编码,结尾处很可能被拆分。
那........................还是很模糊,
连续块的编码,就用Encoder类吗?
什么是连续的块?