我将下载的文件保存到隔离存储中,我想将编码设置为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();
}
答案 0 :(得分:3)
理想的解决方案是将文件作为流下载并直接保存到文件中,从而保持下载的字节不变(因此不需要进行文本编码转换)!
此外,Windows Phone仅支持一些基本的文本编码,如UTF8和Unicode;为了在WP中使用其他编码,您必须使用Silverlight Text Encoding Generator工具!
答案 1 :(得分:2)
您正在将结果转换为字符串,因此您将UTF-16写入流中。因此,无法匹配流和XML中的编码。您可以将响应流复制到隔离的存储流。
请不要使用字符串操作来构造,读取和写入XML。有很多相应的类可以正确地完成它。在您的情况下,您可能希望使用XmlDocument或XDocument读取XML,而不是在创建XmlWriter时保存到流中,可选地指定编码。