C# 使用UTF格式的Xml字符编码

C# 使用UTF格式的Xml字符编码,c#,xml,C#,Xml,我正在使用下面的代码将c#对象序列化为Xml public class Utf8StringWriter : StringWriter { public override Encoding Encoding { get { return Encoding.UTF8; } } } public string SerializeDataWithUTF8Encoding<T>(T data) { XmlSerializer serializer = new XmlSeri

我正在使用下面的代码将c#对象序列化为Xml

public class Utf8StringWriter : StringWriter
{
    public override Encoding Encoding { get { return Encoding.UTF8; } }
}

public string SerializeDataWithUTF8Encoding<T>(T data)
{
    XmlSerializer serializer = new XmlSerializer(typeof(T));
    StringWriter sw = new Utf8StringWriter();
    serializer.Serialize(sw, data);
    var xmlString = sw.ToString();
    return xmlString;
}
但在上面生成的xml中,我得到的描述如下

“这是贵方1A号线路隔离装置%数量%的预付款,每月每台装置%数量费率为%

所以这里是
£编码为

如何停止这种编码?我想保留
£如XML中所示


我尝试了几个选项,但没有得到太多帮助。

我刚刚尝试了您的代码,但得到了完全相反的结果-我得到了包含
的XML#xA3这是我所期望的,因为这是您提供的文本的XML表示。它正在按原样逃逸
&
。就XML序列化程序而言,您的描述字符串只是文本。它并不期望它已经是XML编码的。如果您希望字符串中包含一个磅号,为什么不在字符串中添加
(或
\u00a3
)呢?我希望与您的结果相同,但对我来说,使用相同的代码,它将作为磅号出现。。我不能使用磅符号,因为文本来自第三方,他们希望在xml中显示完全相同的文本。谢谢,请展示一个简短但完整的控制台应用程序来演示这一点-我猜问题在于如何诊断它。从根本上说,如果文本应该直接作为XML传播,而不进行编码,则可能会出现问题。我不知道如何使用XmlSerializer实现这一点,因为它的工作是表示XML中给定的文本。。。
public class Test
{
    string Description = "This is the charge in advance for your %quantity% Line isolating unit No. 1A at &#xA3;%quantity rate% per unit per month";
}

Test obj = new Test();

//calling above function
SerializeDataWithUTF8Encoding(obj)