环境:Visual Studio 2008 SP1
我的文本文件中有以下行:
using (var reader = File.OpenText(@"c:\temp\DATA.txt"))
{
...
string textLine = "ist where [name]='Curaçao')"
}
请注意非英文字符。
每当 reader.ReadLine 到达此点时,它会在我的控制台应用程序中将其变为问号。
任何想法如何保存?
答案 0 :(得分:2)
您应该在阅读器中使用charset。但是,控制台不支持非ASCII字符!
答案 1 :(得分:1)
这很可能是编码问题 - reader
使用与文件所在的编码不同的编码。
确保两者使用相同的编码。
File.OpenText
将使用UTF8Encoding
- 如果您的文件采用不同的编码,这可能就是问题所在。
要指定编码,请使用带有StreamReader
参数的构造函数构造Encoding
:
using (var reader = new StreamReader(@"c:\temp\DATA.txt",
Encoding.GetEncoding(860)))
{
...
string textLine = "ist where [name]='Curaçao')"
}
在上面的示例中,我使用的是葡萄牙语编码。