Нужно на месте несуществующих в iso8859-1 символов получить xml entity
XSLT processor их не эскейпит, либо в UTF-16 пишет забивая на encoding в xsl:output
String xsltString =
@"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:output method='xml' encoding='iso8859-1'/>
<xsl:template match='body'>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>";
XslTransform xslt = new XslTransform();
xslt.Load(new XPathDocument(new StringReader(xsltString)), null, null);
string str = "<body>привет на русском, ёыпавып2ё12ё2ё2ёвыапывп чхъюэ</body>";
XPathDocument input = new XPathDocument(new StringReader(str));
StringWriter writer = new StringWriter();
xslt.Transform(input, null, writer, null);
MessageBox.Show(writer.ToString());
если выводить в файл,
StreamWriter writer = new StreamWriter(@"C:\test.xml", false, Encoding.GetEncoding("iso8859-1"));
то пишет в iso8859-1, но такие '?' символы а не entity
кто знает в чём тут проблема ?