Я использую Open XML SDK для чтения и записи информации в пользовательские части XML в документе Word.
Я сериализирую структуру xml в класс, модифицирую данные и сериализую их обратно в документ.
Пример кода
DocumentFormat.OpenXml.Packaging.CustomXmlPart myPart = GetCustomXmlPart(mainPart, AITNamespaces.SiteDataNameSpace);
StreamReader myStrR = new System.IO.StreamReader(myPart.GetStream());
string myXML = myStrR.ReadToEnd();
sitedata = ObjectXMLSerializer<WDSiteData>.LoadString(myXML);
Site selSite = _applicationService.GetApplicationData().Sites.Find(item => item.Id == siteId);
sitedata.SiteId= selSite.Id;
sitedata.SiteName = "ööööaaaaaåååå"; // selSite.SiteName;
myXML = ObjectXMLSerializer<WDSiteData>.GetXMLString(sitedata);
myPart = GetCustomXmlPart(wordProcDocument.MainDocumentPart, AITNamespaces.SiteDataNameSpace);
using (StreamWriter sw = new StreamWriter(myPart.GetStream(FileMode.Create)))
{
sw.Write(myXML);
}
Моя проблема заключается в том, что национальные символы закодированы, а текст "ööööaaaaaåååå" отображается в текстовом документе как "???????? aaaaa ????????"
Фактическое кодирование выполнено
myXML = ObjectXMLSerializer<WDSiteData>.GetXMLString(sitedata);
Любой знает, как поступить с национальными символами таким образом.