在这里我很简单,您能否确认每个代码页是否作为.NET 2.0中System.Text.Encoding的独立子类实现?
答案 0 :(得分:2)
我不确定我是否了解您问题的背景,但是,Encoding.UTF8
,Encoding.UTF16
以及从Encoding.GetEncoding()
返回的任何内容都来自System.Text.Encoding
。它不能是任何其他方式,因为Encoding.GetEncoding()
返回 Encoding
实例,这意味着 所做的唯一事情就是返回一个子类。
答案 1 :(得分:1)
通过Reflector查看,只有少数几个类是System.Text.Encoding的子类。
公开:
内部:
GetEncoding()方法使用其中每个的变体来回馈其他数百个支持的代码页。
答案 2 :(得分:1)
没有。 .NET框架(下面列出)本身支持某些编码,这些编码有自己的子类。任何其他代码页都存储为GetEncoding()
[1]返回的对象的属性,并且由底层操作系统提供支持。
本机(对.NET Framework)编码为:
ASCIIEncoding
UTF7Encoding
UTF8Encoding
UnicodeEncoding
(使用UTF-16)UTF32Encoding
(来自http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx的信息)
1:对于非本机代码页,这可能是Encoding
的子类,但我没有检查过。下面链接的文档似乎表明使用了Encoding
的实例。