gpt4 book ai didi

c# - StreamReader 问题 - 未知文件编码(西方 ISO 88591)

转载 作者:行者123 更新时间:2023-12-03 05:46:28 24 4
gpt4 key购买 nike

当从输入文件读取数据时,我注意到 StreamReader 没有读取 ¥ 符号。 Mozilla Firefox 显示输入文件类型为 Western (ISO-8859-1)。

在尝试了编码参数之后,我发现它可以成功地用于以下值:

System.Text.Encoding.GetEncoding(1252) // (western iso 88591)

System.Text.Encoding.Default

System.Text.Encoding.UTF7

现在我计划使用“默认”设置,但我不太确定这是否是正确的决定。现有代码没有使用任何编码,我担心我可能会破坏某些东西。

我对编码知之甚少(或者说一无所知)。我该怎么办?我使用 System.Text.Encoding.Default 的决定安全吗?我应该要求用户以特定格式保存文件吗?

最佳答案

代码页 1252 与 ISO-Latin-1 不太一样。如果您需要 ISO-Latin-1,请使用 Encoding.GetEncoding(28591)。但是,我希望它们对于此代码点 (U+00A5) 是相同的。 UTF-7 完全不同(而且几乎不是您想要使用的)。

Encoding.Default 安全 - 在大多数情况下这是一个非常糟糕的主意。它特定于您正在运行的特定计算机。如果您将文件从一台计算机传输到另一台计算机,谁知道原始计算机使用的编码是什么?

如果您知道您的文件采用 ISO-8859-1 格式,则明确使用它。是什么产生了这些文件?如果它们只是由用户保存,那么它们保存在哪个程序中?如果 UTF-8 是一种选择,那么这是一个很好的选择 - 部分原因是它可以处理整个 Unicode。

我有一个article on Unicode另一个关于debugging Unicode issues您可能会发现这很有用。

关于c# - StreamReader 问题 - 未知文件编码(西方 ISO 88591),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com