2009-04-24 25 views
0

我從文本文件中讀入兩個字符串進行比較,當我嘗試將這些文件與winmerge或pspad進行比較時,它們都顯示爲相同的文本字符串。如果我用下面的函數對它們進行比較,它失敗:C#比較字符串 - 不同的代碼頁

string string1 = File.ReadAllText(@"c:\file1.txt"); 
string string2 = File.ReadAllText(@"c:\file2.txt");  
bool stringMatch = false; 
if (string1.Equals(string2, StringComparison.InvariantCulture)){ 
    stringMatch = true; 
} 
//stringMatch is false here 

經過一番搜索這似乎是一個「和」是不同的:

 
Content of file1.txt: é"'(§è!çà)- 
Content of file2.txt: é」’(§è!çà)- 

什麼辦法可以恰當地比較這兩個字符串並匹配那些「&」字符?

回答

1

你可以使用方法他們兩個轉換爲byte[]System.Text.Encoding 下,然後比較byte[]陣列

1

好了,你不具備的WinMerge或pspad的.NET字符串,所以事情就可以很好地同時解碼走錯了。你需要解釋你確切場景:

  • 是數據文件中的(因此的WinMerge/pspad)?
  • 你如何在.NET中加載文件?
  • 你是如何加載WinMerge等文件?

編輯:好吧,基於評論 - 什麼是該文件的編碼是?你是否在WinMerge中指定它? .NET將使用UTF-8(因爲您還沒有指定任何其他編碼)。

+0

1)數據位於* .txt文件中 2)文件正在讀取字符串string1 = File.ReadAllText(@「c:\ file1.txt」) 3)我只是打開file1並使用「文本區別與file2.txt」選項。 – Carra 2009-04-24 10:40:14