是Encoding.Unicode
只为UTF-16的名称? 那么为什么叫刚刚统一,而不是UTF-16?
在编码文档微软指出,对于大多数情况和应用中,你应该避免使用Encoding.ASCII
和Encoding.Default
。
当使用System.Text.Encoding
。 在大多数情况下,我应该使用Encoding.Unicode
或Encoding.UTF8
?
是Encoding.Unicode
只为UTF-16的名称? 那么为什么叫刚刚统一,而不是UTF-16?
在编码文档微软指出,对于大多数情况和应用中,你应该避免使用Encoding.ASCII
和Encoding.Default
。
当使用System.Text.Encoding
。 在大多数情况下,我应该使用Encoding.Unicode
或Encoding.UTF8
?
它来自Unicode的初期。 Unicode的1.0是一个16位的编码,因为它是假设,65536个点就足够了。 Unicode的2.0放弃了这一限制,但统一的尝鲜,包括微软,命名了他们的Unicode编码,并一直坚持。
现在,你应该使用UTF-8,除非你有你需要用,这样做的原因集成特定的,如传统的软件。
这样做的原因是,ASCII是UTF-8二进制兼容的,并且有很多的 ASCII在那里
是
Encoding.Unicode
只为UTF-16的名称?
是。 具体地,对于小端排序UTF-16。 Encoding
具有独立的BigEndianUnicode
大端UTF-16性能。
那么为什么叫刚刚统一,而不是UTF-16?
由于历史的原因。 微软是第一个公司采取统一的一个,所以它在Windows中的“统一”实施归途中的Unicode初期UTF-16被发明之前。 “统一”是微软事实上的名称来指无论其原生Unicode编码是,这曾经是UCS-2,现在是UTF-16。
当使用
System.Text.Encoding
。 在大多数情况下,我应该使用Encoding.Unicode
或Encoding.UTF8
?
这真的取决于你的特殊场景。 无论使用何种编码适合您的需求。 这两种编码有长处和短处。
UTF-8通常用于互操作性的通信协议,因为它没有从尾数问题的困扰,而且与大多数现有的基于文本的协议大体兼容。 这也是通常的字节存储比UTF-16的大多数语言小。
UTF-16 通常是更容易的内存来处理非UTF-8,这就是为什么这么多库和框架使用它的字符串。 而且它可以为字节存储比UTF-8的情况下,特别是对东亚语言。