无法使用XmlWriter编码为UTF8

时间:2018-01-04 14:49:23

标签: wcf utf-8 xmlwriter

我正在使用WCF中的Web服务。

我想以UTF8返回一个xml文件。

我的代码是:

StringBuilder output = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, Encoding = Encoding.UTF8 };
using (XmlWriter writer = XmlWriter.Create(output, settings))
{
    writer.WriteStartDocument();
    writer.WriteStartElement("Response", Resources.nameSpaceUri);
    /* Some functions */
    writer.WriteEndElement();
    writer.WriteEndDocument();
}
return output.ToString();

但结果如下:

<?xml version="1.0" encoding="utf-16"?>
<Response xmlns="http://namespace">
    <!-- Content -->
</Response>

为什么我的回复是UTF-16?

1 个答案:

答案 0 :(得分:1)

这只是因为StringBuilder(和String,Char,char)使用UTF-16。作者适当地声明了编码。如果您使用以文件或流为目标的编写器,则它将使用设置中的编码。