Is Encoding.Unicode https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.unicode只是 UTF-16 的一个名称?那为什么只叫Unicode而不叫UTF16呢?
In the 编码文档 https://learn.microsoft.com/en-us/dotnet/standard/base-types/character-encoding#Selecting微软表示,对于大多数场景和应用程序,您应该避免使用Encoding.ASCII
and Encoding.Default
.
使用时System.Text.Encoding https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding。在大多数情况下我应该使用Encoding.Unicode
or Encoding.UTF8
?
Is Encoding.Unicode
只是 UTF-16 的一个名称?
是的。具体来说,对于小端 UTF-16。Encoding
有一个单独的BigEndianUnicode
大端 UTF-16 的属性。
那为什么只叫Unicode而不叫UTF16呢?
由于历史原因。 Microsoft 是最早采用 Unicode 的公司之一,因此早在 UTF-16 发明之前,它就在 Windows 中实现了“Unicode”。 “Unicode”是 Microsoft 的实际名称,指代其本机 Unicode 编码,以前是 UCS-2,现在是 UTF-16。
使用时System.Text.Encoding
。在大多数情况下我应该使用Encoding.Unicode
or Encoding.UTF8
?
这实际上取决于您的特定场景。使用适合您需要的编码。两种编码都有优点和缺点。
UTF-8 通常用于通信协议中的互操作性,因为它不会遇到字节序问题,并且在很大程度上与大多数现有的基于文本的协议兼容。也是usually对于大多数语言来说,字节存储比 UTF-16 小。
UTF-16 是usually比 UTF-8 更容易在内存中处理,这就是为什么许多库和框架将其用于字符串的原因。还有它can be字节存储比 UTF-8 小,特别是对于东亚语言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)