10

我正在读取一个文件(逐行),其中包含像 äåö 这样的瑞典语字符,但我如何才能读取和保存带有瑞典语字符的字符串。这是我的代码,我使用的是 UTF8 编码:

TextReader tr = new StreamReader(@"c:\testfile.txt", System.Text.Encoding.UTF8, true);
tr.ReadLine() //returns a string but Swedish characters are not appearing correctly...
4

3 回答 3

17

您需要将 System.Text.Encoding.UTF8 更改为 System.Text.Encoding.GetEncoding(1252)。见下文

        System.IO.TextReader tr = new System.IO.StreamReader(@"c:\testfile.txt", System.Text.Encoding.GetEncoding(1252), true);
        tr.ReadLine(); //returns a string but Swedish characters are not appearing correctly
于 2012-12-13T01:03:16.287 回答
1

我自己想通了,即System.Text.Encoding.Default支持瑞典字符。

TextReader tr = new StreamReader(@"c:\testfile.txt", System.Text.Encoding.Default, true);
于 2012-12-13T01:01:17.607 回答
0

System.Text.Encoding.UTF8应该足够了,它在 .NET Framework 和 .NET Core 上都受支持https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?redirectedfrom=MSDN&view=netframework-4.8

如果您仍然对 �� 字符(而不是 ÅÖÄ)有问题,请检查源文件 - 它有什么样的编码?也许是ANSI,那么你必须转换为UTF8

你可以在记事本++中做到这一点。您可以打开文本文件并转到Encoding - Convert to UTF-8

或者在源代码(C#)中:

var myString = Encoding.UTF8.GetString(File.ReadAllBytes(pathToTheTextFile));
于 2019-07-17T08:31:40.757 回答