Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#奇怪字符的字符串编码_C#_Encoding - Fatal编程技术网

C#奇怪字符的字符串编码

C#奇怪字符的字符串编码,c#,encoding,C#,Encoding,我有一个文件需要导入。 问题是我在文件中有很多字符 例如,这些名称是错误的: BjÃrn(在文件中)-应该是Björn Ã…ke(文件中)-应该是Åke 不幸的是,我无法用正确的编码重新创建文件。 还有很多错误的字符(这些只是示例)。我不能对所有的数据进行搜索和替换(如果没有包含所有转换的字典) 我可以用某种方式解码字符串吗 谢谢你,帕特里克 编辑: 只是一些我之前应该补充的信息(我责备我的疲劳)。 该文件是一个.xlsx文件 我刚刚尝试了您的第一个示例,它看起来肯定是UTF-8 不清楚您首先使

我有一个文件需要导入。 问题是我在文件中有很多字符

例如,这些名称是错误的:

BjÃrn(在文件中)-应该是Björn

Ã…ke(文件中)-应该是Åke

不幸的是,我无法用正确的编码重新创建文件。 还有很多错误的字符(这些只是示例)。我不能对所有的数据进行搜索和替换(如果没有包含所有转换的字典)

我可以用某种方式解码字符串吗

谢谢你,帕特里克

编辑: 只是一些我之前应该补充的信息(我责备我的疲劳)。
该文件是一个.xlsx文件

我刚刚尝试了您的第一个示例,它看起来肯定是UTF-8

不清楚您首先使用什么来查看文件,但是如果您使用理解UTF-8的文本编辑器加载文件,并告诉它这是一个UTF-8文件,应该可以


当您使用.NET加载它时,您应该能够使用
File.OpenText
File.ReadAllText
等-大多数在.NET中处理编码的IO都默认为UTF-8。

我刚刚尝试了您的第一个示例,它看起来肯定是UTF-8

不清楚您首先使用什么来查看文件,但是如果您使用理解UTF-8的文本编辑器加载文件,并告诉它这是一个UTF-8文件,应该可以


当您用.NET加载它时,您应该只能够使用
File.OpenText
File.ReadAllText
等-大多数在.NET中处理编码的IO都默认为UTF-8。

我用记事本++调试了它。我将正确的字符串复制到记事本++。我使用了编码|转换为UTF-8。然后我选择Encoding | Encode作为ANSI。这会将UTF-8字节解释为ANSI字节。当我这么做的时候,我和你一样,也有同样错误的价值观。因此,当您读取要解释的文件时,显然是ANSI文件,而不是UTF-8文件

然后,解决方案是将文件编码为UTF-8。确保在读取文件时将其解释为UTF-8。我不能确切地告诉你怎么做,因为你一开始没有展示你是如何读取文件的


您的文件可能不包含。如果是这样的话,那么在通过pass读取文件时指定编码。

我用Notepad++调试了它。我将正确的字符串复制到记事本++。我使用了编码|转换为UTF-8。然后我选择Encoding | Encode作为ANSI。这会将UTF-8字节解释为ANSI字节。当我这么做的时候,我和你一样,也有同样错误的价值观。因此,当您读取要解释的文件时,显然是ANSI文件,而不是UTF-8文件

然后,解决方案是将文件编码为UTF-8。确保在读取文件时将其解释为UTF-8。我不能确切地告诉你怎么做,因为你一开始没有展示你是如何读取文件的


您的文件可能不包含。如果是,则在通过传递读取文件时指定编码。

UTF-8?我不确定我是否理解您的问题:1)您知道使用哪种编码,但不知道如何在.NET中使用它,或者2)您是否在寻找确定编码的方法?您可以尝试将文件保存为Unicode。记事本,文件另存为,选择unicode。如果文件以前使用错误的编码保存,则他们将使用正确的编码重新发送文件。由于所有字符都在那里,因此最好使用Unincode。打开时也是如此,打开和读取文件时应使用正确的编码,否则可能无法在.UTF-8中读取所有字符?我不确定我是否理解您的问题:1)您知道使用哪种编码,但不知道如何在.NET中使用它,或者2)您是否在寻找确定编码的方法?您可以尝试将文件保存为Unicode。记事本,文件另存为,选择unicode。如果文件以前使用错误的编码保存,则他们将使用正确的编码重新发送文件。由于所有字符都在那里,因此最好使用Unincode。打开时也是一样,打开和读取文件时应使用正确的编码,否则可能无法读入所有字符。它可能是一个没有BOMIt的UTF-8文件,也可能是一个没有很多BOMThank的UTF-8文件。你解决了我的问题!!!在Excel中,文件中的字符看起来是错误的(如我前面所述),并且在我使用Linq将内容导入Excel时也是错误的。我将文件(Excel)保存到一个普通的文本文件中,现在字符都正确了。非常感谢。你解决了我的问题!!!在Excel中,文件中的字符看起来是错误的(如我前面所述),并且在我使用Linq将内容导入Excel时也是错误的。我将文件(在Excel中)保存到一个普通的文本文件中,现在字符是正确的。