如何从C#中的XML字符串中获取斯堪的纳维亚字符?

时间:2019-05-14 10:03:03

标签: c# xml encoding

我期望XML响应字符串中有一些特殊字符,例如testÅÄÖÖ2。我希望按原样阅读并将其存储在系统中(在我的情况下是CRM表单)。 我希望以“testÅÄÖÖ2”代替“ test ??? 2”。

我们收到一些xml响应,并通过使用C#将其存储在CRM中。

private void Update(string guidCampaign)
        {
    var fullstring = @"<?xml version='1.0' encoding='utf-8'?><xmlStart><CampId>9348</CampId><CampCode>testÅÄÖ2</CampCode></xmlStart>";
    var doc = new XmlDocument();

    XmlReader reader = XMLValidator.getXMLReader(fullstring);
    doc.Load(reader);

    var Id = doc.SelectSingleNode("xmlStart/CampId")?.InnerText;
    var Code = WebUtility.HtmlDecode(doc.SelectSingleNode("xmlStart/CampCode")?.InnerText);
}

public static XmlReader getXMLReader(string inputXML)
        {
            XmlReaderSettings ReaderSettings = new XmlReaderSettings();
            ReaderSettings.DtdProcessing = DtdProcessing.Prohibit;
            ReaderSettings.XmlResolver = null;
            byte[] byteArray = Encoding.ASCII.GetBytes(inputXML);
            MemoryStream stream = new MemoryStream(byteArray);
            StreamReader xmlStream = new StreamReader(stream, Encoding.GetEncoding("iso-8859-1"));
            XmlReader reader = XmlReader.Create(xmlStream, ReaderSettings);
            return reader;
        }

我要在“代码”字段中使用“testÅÄÖÖ2”,而不是“ test ??? 2”。我尝试了很多事情,但找不到正确的语法。

0 个答案:

没有答案