c# - 我的应用程序的内部编码

标签 c# unicode encoding utf-8 utf-16

我的桌面 C# 应用程序从用户那里获取各种文档,可能采用不同的编码。

我需要向用户显示现有文档,允许在我的 UI 中操作它们,并存储它们以供将来使用。

在每个步骤中添加“编码”的概念对我来说似乎很复杂。我想在内部始终将用户输入文档转换为 UTF-8,因此我的 UI 和数据存储不需要担心它。然后,当用户希望将文档作为文件返回时,我会询问用户要使用哪种编码。

这有道理吗?编码可以互操作吗?如果我只支持 unicode 怎么办?

最佳答案

在您的应用程序中,您应该使用 native Unicode 支持(平台用于存储 Unicode)。在 Windows 和 OS X 上,这是一种 UTF-16,但在 Linux 上,它是 UTF-8

在保存/加载文件或与外部系统通信时,请选择 UTF-8

另外,不要将代码页与编码混淆。

关于代码页,今天我认为支持它们不再那么重要了。至少它不应该成为你的优先事项。因为对于 ANSI 编码,您没有 BOM,因此很难猜测文件的编码(事实上不可能完美地做到这一点)。

关于c# - 我的应用程序的内部编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254154/

相关文章:

python - Python 2.7 中的 UnicodeDecodeError

Android 用省略号字符替换 "..."

java - 在java中破译encfs卷 key

php - 在不转换字符的情况下将 linux 文件更改为编码类型 utf 8

c# - 如何只允许数字、点和信号?

c# - 向项目中添加 OData 连接服务失败 : Value cannot be null. 参数名称:path1

C# ReaderWriterLockSlim 避免递归的最佳实践

c# - MySql 存储过程参数转义

php - 模拟尚未实现的 <bdi> HTML 标签的方法?

c# - 如何在 C# 中渲染 Zalgo 文本