我的桌面 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/