0

GB2312 でエンコードされたテキスト ファイルを、PC からデバイスの分離ストレージにコピーしました。私はそれを読むために次のコードを持っています。デバイスの言語は簡体字中国語に設定されています。しかし、読み返されたテキストは、数字とアルファベットを除いてすべてゴミです。エンコーディングが正しく設定されていないようです。ただし、GB コードだけを扱っているとは限りません。コードの何が問題になっていますか? ありがとう!

            string fileName = "周杰伦-听妈妈的话.lrc";

        using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (StreamReader sr = new StreamReader(store.OpenFile(fileName, FileMode.Open, FileAccess.Read), true))
            {
                while (true)
                {
                    String line = sr.ReadLine();
                    if (line == null)
                        break;
                }
            }
        }
4

1 に答える 1

1

ファイルの正しいエンコーディングを含むStreamReader c'torを使用してみましたか?

public StreamReader(
    Stream stream,
    Encoding encoding
)

文字エンコーディングは encoding パラメータによって設定され、デフォルトのバッファ サイズが使用されます。StreamReader オブジェクトは、ストリームの最初の 3 バイトを調べてエンコードを検出しようとします。ファイルが適切なバイト オーダー マークで始まる場合、UTF-8、リトル エンディアン Unicode、およびビッグ エンディアン Unicode テキストを自動的に認識します。それ以外の場合は、ユーザー提供のエンコーディングが使用されます。詳細については、Encoding.GetPreamble メソッドを参照してください。

于 2012-12-25T22:22:11.257 に答える