1

現在、摂氏記号が °C ではなく C として読み取られるという問題が発生しています。

犯人のエンコーディングのように見えます。私はこれをやろうとしました:

            using (StreamReader sr = new StreamReader(this._inFilePath,System.Text.Encoding.Unicode ,true))

それ以外の

            using (StreamReader sr = new StreamReader(this._inFilePath))

しかし、私は今ガベージを取得しています....元のファイルエンコーディングはStreamReaderエンコーディングと一致する必要がありますか? コンパクト フレームワーク 2.0 を使用しています。

私はこれをオンラインで見つけましが、これを使用する場合、すべてをバイト配列に読み込み、各行の終わりを検出し、それを Unicode に変換してから、プログラム ロジックを続行します。このクラスを利用した人はいますか?

4

1 に答える 1

2

はい、StreamReader を構築するときに正しいエンコーディングを指定する必要があります。.NET がエンコードを検出できる場合があります。この動作を要求するために使用できるブール値パラメーターを取る StreamReader コンストラクターのオーバーロードがあります。

public StreamReader(文字列パス、bool detectEncodingFromByteOrderMarks)

于 2009-03-12T20:12:03.147 に答える