我有XML文件,需要通过应用XSL Transformation来生成带有Windows-1251编码的HTML文件.问题是XSL -file的Unicode字符不会像"ғ"那样转换为HTML Unicode转义序列.在XSL Transformation期间,只有"?" 标志是写而不是他们.如何让XslCompiledTransform.Transform方法执行此转换?或者是有任何写HTML字符串到Windows-1251的HTML文件,将HTML Unicode转义序列,这样我就可以执行XSL转换为字符串,然后用这种方法来写与Windows-1251编码,并与HTML文件的方法- 所有unicode字符的转义(比如Convert(" ғ ")将返回" ғ ")?
XmlReader xmlReader = XmlReader.Create(new StringReader("The Wizard of Wishaw"));
XslCompiledTransform xslTrans = new XslCompiledTransform();
xslTrans.Load("sheet.xsl");
using (XmlTextWriter xmlWriter = new XmlTextWriter("result.html", Encoding.GetEncoding("Windows-1251")))
{
xslTrans.Transform(xmlReader, xmlWriter); // it writes Windows-1251 HTML-file but does not escape unicode characters, just writes "?" signs
}
谢谢大家的帮助!
UPDATE
我在XSL文件中的输出配置标记:
我现在甚至都不希望XSL满足我的需求.但我想知道我没有任何方法来检查字符是否可以被指定的编码接受.就像是
Char.IsEncodable('?', Encoding.GetEncoding('Windows-1251'))
我目前的解决方案是将所有大于127(c> 127)的字符转换为dddd; 转义字符串,但我的主管对解决方案不满意,因为生成的HTML文件的来源不可读.