将xml文档转换为编码为utf-8的字符串
本文关键字:utf-8 字符串 编码 文档 转换 xml | 更新日期: 2023-09-27 18:01:48
我想创建一个xml文档并将其保存在字符串对象中。
为了保存和编码的目的,我参考了SO上的这两个问题
- XDocument.ToString()删除XML编码标签
- 强制XDocument写入使用UTF-8编码的字符串
StringBuilder builder = new StringBuilder();
XDocument doc = new XDocument(new XElement("BANKID",
new XElement("ReqID", "WEB"),
new XElement("ReqHeader", "CASHDEP"),
new XElement("CurrencyCode", ""),
new XElement("CurrencyAbbrivation", "")));
using (TextWriter writer = new Utf8StringWriter(builder)) // Error Line
{
doc.Save(writer);
}
builder.ToString();
public class Utf8StringWriter : StringWriter
{
public override Encoding Encoding { get { return Encoding.UTF8; } }
}
它给我错误说"Utf8StringWriter不包含一个构造函数,接受1个参数"
如何修改接受参数为StringBuilder
的类
您的自定义Utf8StringWriter
类没有接受参数的构造函数,但是您正在尝试向它传递一个值。这就是为什么你会得到错误信息。
添加一个接受StringBuilder
的公共构造函数,然后将其传递给基类:
public class Utf8StringWriter : StringWriter
{
public Utf8StringWriter(StringBuilder stringBuilder)
:base(stringBuilder)
{
}
public override Encoding Encoding { get { return Encoding.UTF8; } }
}