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 对象尝试通过查看流的前三个字节来检测编码。如果文件以适当的字节顺序标记开头,它会自动识别 UTF-8、little-endian Unicode 和 big-endian Unicode 文本。否则,使用用户提供的编码。有关详细信息,请参阅 Encoding.GetPreamble 方法。

于 2012-12-25T22:22:11.257 回答