0

我正在将下载的文件保存到隔离存储中,我想将编码设置为 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();
        }
4

2 回答 2

3

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

此外,Windows Phone 仅支持一些基本的文本编码,如 UTF8 和 Unicode;为了在 WP 中使用另一种编码,您必须使用Silverlight 文本编码生成器工具!

于 2012-05-21T17:35:49.023 回答
2

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

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

于 2012-05-21T17:29:06.590 回答