以特殊拉丁字符编码XML文件中断

时间:2016-10-26 07:55:01

标签: xml xslt

我有一个XML文件,我将其附加到我的站点库中。 XML具有拉丁字符,因此我使用此方法item.Attachments.Add("xyz.xml", Encoding.GetEncoding("iso-8859-1").GetBytes(writerXml.ToString()));

对其进行编码

问题是,当我尝试在浏览器中打开文件时,它会破坏特殊字符的出现位置。它会出现错误,因为无法使用XSL样式表查看XML输入。

我想知道如何解决此问题以及为什么我无法在浏览器中生成它?

尝试使用以下代码添加声明:

XDocument doc = new XDocument();
            doc.Declaration = new XDeclaration("1.0","ISO-8859-1", null);
            XElement element = new XElement("webapp", new XAttribute("name", webApp.Name), new XAttribute("id", webApp.Id),
                           MyInformation;
            doc.Add(element);
            return doc.ToString();
        }

1 个答案:

答案 0 :(得分:0)

显然,文件的编码并不是浏览器认为的。

我真的不明白为什么你最近想要使用iso-8859-1而不是utf-8,但如果这是你的选择,你需要确保(a)文件开头的XML声明声明为iso-8859-1,(b)在提供文件时,HTTP头中没有冲突声明。我的猜测(证据很少)是文件上没有XML声明,因此浏览器假定为UTF-8。