2012-01-11 63 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字符!

相關問題