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

C# 将文件保存到独立存储时设置自定义编码,c#,windows-phone-7,isolatedstorage,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)) { s

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

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


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

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


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

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


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

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


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

我使用XDocument读取保存的文件…我从不写入它。我只是下载它并获取数据。也许…我可能误读了您保存到存储器的代码
string xml\u file=e.Result.ToString();
(对我来说也很像是将结果转换为字符串)。我正在使用XDocument读取保存的文件…我从不写入它。我只是下载它并获取数据。也许…我可能误读了保存到存储器的代码
string xml\u file=e.Result.ToString();
(对我来说,也很像将结果转换为字符串)。听起来合理。是否可以将我从internet下载的文件直接保存到独立存储?是的,使用
OpenReadAsync
,而不是
DownloadStringAsync
;检查如何实现此目的!听起来合理。是否可以将我从internet下载的文件直接保存到独立存储?是的,而不是
DownloadStringAsync
,使用
OpenReadAsync
;检查如何实现这一点!