控制台应用程序中的非英文字符翻译不正确
本文关键字:字符 翻译 不正确 文字符 应用程序 控制台 | 更新日期: 2023-09-27 18:19:58
环境:Visual Studio 2008 SP1
我的文本文件中有以下行:
using (var reader = File.OpenText(@"c:'temp'DATA.txt"))
{
...
string textLine = "ist where [name]='Curaçao')"
}
请注意非英文字符。
每当reader.ReadLine达到这一点时,它就会在我的控制台应用程序中成为一个问号。
有什么想法可以保存吗?
您应该在阅读器中使用字符集。然而,控制台不支持非ASCII字符!
这很可能是编码问题-reader
使用的编码与文件所在的编码不同。
请确保两者使用相同的编码。
File.OpenText
将使用UTF8Encoding
——如果您的文件使用不同的编码,这很可能是问题所在。
要指定编码,请使用接受Encoding
参数的构造函数构造StreamReader
:
using (var reader = new StreamReader(@"c:'temp'DATA.txt",
Encoding.GetEncoding(860)))
{
...
string textLine = "ist where [name]='Curaçao')"
}
在上面的例子中,我使用的是葡萄牙语编码。