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