gpt4 book ai didi

c# - XslCompiledTransform 使用 UTF-16 编码

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:46 26 4
gpt4 key购买 nike

我有以下代码,我想使用UTF-8编码格式输出xml数据。但它始终以 UTF-16 格式输出数据:

        XslCompiledTransform xslt = new XslCompiledTransform();

xslt.Load(XmlReader.Create(new StringReader(xsltString), new XmlReaderSettings()));

StringBuilder sb = new StringBuilder();

XmlWriterSettings writerSettings = new XmlWriterSettings();
writerSettings.Encoding = Encoding.UTF8;
writerSettings.Indent = true;

xslt.Transform(XmlReader.Create(new StringReader(inputXMLToTransform)), XmlWriter.Create(sb, writerSettings));

最佳答案

XML 输出将包含一个基于流编码的 header ,而不是设置中指定的编码。由于字符串是 16 位 unicode,因此编码将是 UTF-16。解决方法是取消 header 并改为自己添加:

writerSettings.OmitXmlDeclaration = true;

然后当您从 StringBuilder 获得结果时:

string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + sb.ToString();

关于c# - XslCompiledTransform 使用 UTF-16 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com