【发布时间】:2017-02-08 20:08:30
【问题描述】:
对于 UTF-16 编码,C# 同时具有 System.Text.UnicodeEncoding 和 System.Text.Encoding.Unicode。这两者有什么区别,我应该什么时候使用它们?
【问题讨论】:
对于 UTF-16 编码,C# 同时具有 System.Text.UnicodeEncoding 和 System.Text.Encoding.Unicode。这两者有什么区别,我应该什么时候使用它们?
【问题讨论】:
System.Text.Encoding.Unicode 是一个属性,它返回 System.Text.UnicodeEncoding 和 documented default settings 的实例。
如果默认值适合您的用例,请使用它。否则,创建UnicodeEncoding class 的自定义实例。
【讨论】:
第一个是UnicodeEncodingClass,它具有处理 UTF-16 编码数据的所有功能。第二个,Encoding.Unicode,是一个属性,它返回一个缓存的 UnicodeEncodingClass 实例,其方式与 Encoding.UTF8 或 Encoding.ASCII 对其各自编码的处理方式非常相似。
如果您需要以某种方式自定义实例(可能将字节顺序更改为大端),那么您应该创建自己的UnicodeEncodingClass 实例,否则您可以使用Encoding.Unicode 快捷方式。
【讨论】: