编码.UTF8 还是编码.Unicode?

2024-03-11

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(使用前将#替换为@)

编码.UTF8 还是编码.Unicode? 的相关文章

  • ILMerge 最佳实践

    你用ILMerge吗 您是否使用 ILMerge 合并多个程序集以简化 dll 的部署 在将程序集合并在一起后 您是否发现生产中的部署 版本控制存在问题 我正在寻找一些有关使用 ILMerge 减少部署摩擦的建议 如果可能的话 我将 ILM
  • 关于 ColorMatrix 转换如何工作的说明

    我正在图像处理应用程序上做一些工作 为了好玩 并且正在努力完全理解 ColorMatrix 转换的工作原理 我了解了线性 仿射变换的基础知识 并且可以通过在线复制示例来很好地理解 但我想完全掌握why有些东西有效 而不是仅仅满足于它有效 例
  • 使用 .NET WebClient 模拟 XmlHttpRequest

    据我所知XmlHttpRequest我只需使用以下命令即可下载和上传数据send方法 但WebClient有很多方法 我不想要一个的所有功能WebClient 我只想创建一个模拟的对象XmlHttpRequest 但它没有 XSS 限制 我
  • 并行何时会提高性能

    我试图理解何时使用parallel会提高性能 我用一个简单的代码对其进行了测试 该代码运行了超过 100 000 个项目List
  • 在 Roslyn 分析器中检查表达式类型的正确方法?

    我正在用 Roslyn 编写一个代码分析器 我需要检查是否ExpressionSyntax属于类型Task or Task
  • 异步回调到BackgroundWorker

    我想使用 NET FTP 库 http netftp codeplex com http netftp codeplex com 该库提供 BeginOpenRead string AsyncCallback object 使用异步编程模型
  • 用 unicode 字符删除纯文本?

    是否可以删除代码注释中不需要的修改过的单词 由于开发人员仍然在黑暗时代更简单的纯文本时代进行编码 其中文本无法使用隐藏标识符进行格式化 因此实现这一目标的唯一方法是使用 Unicode 字符 由于某些unicode字符可以扩展 y o n
  • 使用 C# 在 Windows 窗体应用程序中正确使用 OnClick 与 MouseClick 事件

    我目前正在开发一个自定义控件 并意识到我的代码正在运行两次 这实际上并不是一个大问题 它只是 Focus 方法调用 不过 我想了解一下 从阅读点击 MSDN说明单击事件 http msdn microsoft com en us libra
  • 当文件已存在时无法创建该文件

    我正在使用 Winforms 并且尝试将文件从一个位置复制到另一个位置 如果同名文件已经存在 我想覆盖它 但我收到类似 当文件已存在时无法创建文件 的错误 我想覆盖该文件 我应该怎么办 我试过File copy代替File move 但我遇
  • 无法从程序集“mscorlib”加载类型“System.Runtime.CompilerServices.ExtensionAttribute”

    第一次启动我的网站时 我收到此错误 Could not load type System Runtime CompilerServices ExtensionAttribute from assembly mscorlib Version
  • 如何针对 32 位和 64 位安全地从 GetTokenInformation() 调用可变长度结构数组? C#

    我正在关注提供的 pinvoke 代码here https stackoverflow com questions 2146153 how to get the logon sid in c 2146418 2146418但我有点害怕将可变
  • 这可以用 Moq 来嘲笑吗?

    我正在努力模拟一些外部依赖项 并且在一个第三方类中遇到了麻烦 该类在其构造函数中接收另一个第三方类的实例 希望 SO 社区能给我一些指导 我想创建一个模拟实例SomeRelatedLibraryClass它的构造函数接受一个模拟实例Some
  • 将浮点型转换为双精度型

    我正在尝试转换Single to Double同时保持原来的价值 我找到了以下方法 Single f 5 2F Double d1 f 5 19999980926514 Double d2 Double Parse f ToString 5
  • .NET 的 C 代码解析器

    有谁知道 NET 的 C 解析器库吗 我打算将 C 代码解析为某种形式的对象图 这样我就可以将其转换为不同的语言 ANTLR 可以做你想做的事 它有一个 C 预处理器和 ANSI C 语法 https github com antlr gr
  • 如何检索 ComboBox 选定的值作为枚举类型?

    这是我的Enum code public enum EmployeeType Manager Worker 我将初始化ComboBox值 而表单将自身初始化为 combobox1 ItemsSource Enum GetValues typ
  • 正则表达式:如何获取组名称

    我有一个 NET 正则表达式 它看起来类似于
  • Task.Factory.StartNew 或 Parallel.ForEach 对于许多长时间运行的任务? [复制]

    这个问题在这里已经有答案了 可能的重复 Parallel ForEach 与 Task Factory StartNew https stackoverflow com questions 5009181 parallel foreach
  • 使用 python3 查找表情符号的宽度

    我尝试使用 python 中的模式打印字母 A def printA length height symbol a for i in range length for i in range height for i in range hei
  • 检测笔记本电脑盖子的关闭和打开

    是否可以检测笔记本电脑的盖子何时打开或关闭 从我读到的内容来看 这是不可能的 但 SO 之前已经帮助我完成了不可能的任务 我发现唯一可能朝着正确方向的事情是关于报告电源按钮所需的 IOCTL 的 MSDN 博客文章 https learn
  • 有没有办法在 C# 中仅通过文件名查找文件?

    我们现在使用绝对路径或相对路径在 C 应用程序中查找文件 如果文件位于当前工作目录下或 路径 之一下 有没有办法仅通过名称查找文件 使用绝对路径不好 使用相对路径也不够好 因为我们可能通过重命名或移动项目文件夹来更改项目结构 如果我们的代码

随机推荐