在将文件保存到独立存储时设置自定义编码

本文关键字:设置 自定义 编码 存储 独立 文件 保存 | 更新日期: 2023-09-27 18:34:55

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

在将文件保存到独立存储时设置自定义编码

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

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

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

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