gpt4 book ai didi

c# - 如何将xml字符串UTF8转换为UTF16?

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:29 32 4
gpt4 key购买 nike

我有一个 XML 字符串 (utf-8)。我需要将该字符串存储在数据库 (MS SQL) 中。编码字符串必须是 UTF-16。

此代码不起作用,utf16Xml 为空

XDocument xDoc = XDocument.Parse(utf8Xml);
xDoc.Declaration.Encoding = "utf-16";
StringWriter writer = new StringWriter();
XmlWriter xml = XmlWriter.Create(writer, new XmlWriterSettings()
{ Encoding = writer.Encoding, Indent = true });

xDoc.WriteTo(xml);

string utf16Xml = writer.ToString();

utf8Xml - 字符串包含序列化对象(编码 UTF8)。

如何将xml字符串UTF8转为UTF16?

最佳答案

这可能对你有帮助

MemoryStream ms = new MemoryStream();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
XDocument xDoc = XDocument.Parse(utf8Xml);
xDoc.Declaration.Encoding = "utf-16";
using (XmlWriter xw = XmlWriter.Create(ms, xws))
{

xDoc.WriteTo(xw);
}
Encoding ut8 = Encoding.UTF8;
Encoding ut116 = Encoding.Unicode;
byte[] utf16XmlArray = Encoding.Convert(ut8, ut116, ms.ToArray());
var utf16Xml = Encoding.Unicode.GetString(utf16XmlArray);

关于c# - 如何将xml字符串UTF8转换为UTF16?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484403/

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