如何从txt文件中正确读取瑞典语字符

时间:2012-12-13 00:39:08

标签: c# file encoding character-encoding stream

我正在阅读一个完整的瑞典字符(如äåö)的文件(逐行),但我如何阅读和保存带有瑞典字符的字符串。这是我的代码,我使用的是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...

3 个答案:

答案 0 :(得分:14)

您需要将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

答案 1 :(得分:0)

我自己想通了,System.Text.Encoding.Default将支持瑞典人物。

TextReader tr = new StreamReader(@"c:\testfile.txt", System.Text.Encoding.Default, true);

答案 2 :(得分: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

您可以在Notepad ++中完成。您可以打开文本文件并转到编码-转换为UTF-8

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

var myString = Encoding.UTF8.GetString(File.ReadAllBytes(pathToTheTextFile));