2012-01-11 61 views
0

环境正确翻译:的Visual Studio 2008 SP1非英文字符不是在控制台应用程序

我在文本文件中的以下行:

using (var reader = File.OpenText(@"c:\temp\DATA.txt")) 
{ 
    ... 
    string textLine = "ist where [name]='Curaçao')" 
} 

请注意非英文字符。

每当阅读器.ReadLine到达这一点,它将它变成我的控制台应用程序中的问号。

任何想法如何保持这一点?

+0

你是如何宣读读者的?你使用什么编码?文本文件是什么编码? – Oded 2012-01-11 19:57:01

回答

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')" 
} 

在上述例子中,我使用的葡萄牙编码。

2

您应该在阅读器中使用字符集。但是,控制台不支持非ASCII字符!