我有一个我需要导入的文件。 问题是我在该文件中有很多字符存在问题。
例如,这些名称是错误的:
Björn(在档案中) - 应该Björn
Ã... ke (在档案中) - 应该Åke
不幸的是我无法使用正确的编码重新创建文件。 还有很多字符是错误的(这些只是例子)。我无法进行搜索并替换所有(如果没有包含所有转换的字典)。
我可以用某种方式解码字符串吗?
感谢Patrik
修改 我之前应该添加的更多信息(我责怪我的疲惫)。 该文件是.xlsx文件。
答案 0 :(得分:4)
我用Notepad ++调试了这个。我将正确的字符串复制到Notepad ++中。我用了编码|转换为UTF-8。然后我选择了编码|编码为ANSI。这具有将UTF-8字节解释为ANSI的效果。当我这样做时,我最终会得到与你一样的错误价值。很明显,当您阅读文件时,您正在解释的是ANSI而不是UTF-8。
然后解决方案是您的文件已编码为UTF-8。确保在读取文件时将其解释为UTF-8。我不能确切地告诉你如何做到这一点,因为你没有首先展示你如何阅读文件。
您的文件可能不包含byte-order-mark (BOM)。如果是,则在通过传递Encoding.UTF8
来读取文件时指定编码。
答案 1 :(得分:0)
我刚刚尝试了你的第一个例子,它肯定看起来像是UTF-8。
目前还不清楚你用什么来查看文件,但如果你用一个理解UTF-8和告诉它的文本编辑器加载它是一个UTF-8文件,应该没问题。
当您使用.NET加载它时,您应该只能使用File.OpenText
,File.ReadAllText
等 - 大多数处理.NET编码的IO默认为UTF-8。