将文件保存到隔离存储时设置自定义编码

时间:2012-05-21 17:22:35

标签: c# windows-phone-7 isolatedstorage

我将下载的文件保存到隔离存储中,我想将编码设置为iso-8859-1,因为我正在下载的xml文件是以这种方式编码的。

var stream = new IsolatedStorageFileStream("myfile.xml", FileMode.Create, FileAccess.Write, myIsolatedStorage);
        using (StreamWriter writeFile = new StreamWriter(stream)) {
            string xml_file = e.Result.ToString();
            writeFile.WriteLine(xml_file);
            writeFile.Close();
        }

2 个答案:

答案 0 :(得分:3)

理想的解决方案是将文件作为流下载并直接保存到文件中,从而保持下载的字节不变(因此不需要进行文本编码转换)!

此外,Windows Phone仅支持一些基本的文本编码,如UTF8和Unicode;为了在WP中使用其他编码,您必须使用Silverlight Text Encoding Generator工具!

答案 1 :(得分:2)

您正在将结果转换为字符串,因此您将UTF-16写入流中。因此,无法匹配流和XML中的编码。您可以将响应流复制到隔离的存储流。

不要使用字符串操作来构造,读取和写入XML。有很多相应的类可以正确地完成它。在您的情况下,您可能希望使用XmlDocument或XDocument读取XML,而不是在创建XmlWriter时保存到流中,可选地指定编码。