2009-04-24 12 views
0

私は2つの文字列を比較するテキストファイルから読み込み、これらのファイルを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: é”’(§è!çà)- 

私は適切にこれらの2つの文字列を比較することができます任意の方法それらの "&"文字に一致しますか?

答えて

1

あなたはSystem.Text.Encoding 下のメソッドを使用してbyte[]にそれらの両方を変換し、あなたがStringComparisonを受け取るオーバーロードを使用したいように見えますbyte[]配列

1

さて、あなたは、.NETのWinMerge内の文字列またはPSPADを持っていないので、何かがうまくデコードしながら、間違って行くことができます。あなたの正確なシナリオを説明する必要があります。

  • は、ファイル(それゆえのWinMerge/PSPAD)内のデータですか?
  • .NETでファイルをどのようにロードしていますか?
  • WinMergeなどでファイルをどのように読み込みますか?

編集:さて、コメントに基づいて - ファイルのエンコードとは何ですか?どこにでもWinMergeで指定していますか? .NETはUTF-8を使用しています(あなたが他のエンコーディングを指定していないためです)。

+0

1)データは* .txtファイルにあります 2)ファイルは文字列string1 = File.ReadAllText(@ "c:\ file1.txt")で読み取られています 3)私はfile1を開いて使用しています"file2.txtのテキストの違い"オプション。 – Carra