gpt4 book ai didi

c# - 附加\0(反斜杠 0 或 Null)字符的 Xml 序列化?

转载 作者:太空狗 更新时间:2023-10-29 22:24:40 24 4
gpt4 key购买 nike

我正在尝试序列化一个对象,并且\0(空)字符被附加到生成的字符串中。为什么?

我的代码:

 XmlSerializer serializer = new XmlSerializer(typeof(Common.PlanogramSearchOptions));
MemoryStream memStream = new MemoryStream();
serializer.Serialize(memStream, searchOptions);

string xml = Encoding.UTF8.GetString(memStream.GetBuffer()); // appends \0

我的解决方法是用空字符串替换 Null 字符

xml.Replace("\0", string.Empty)

谢谢。

最佳答案

MemoryStream.GetBuffer()返回 MemoryStream 的底层缓冲区(比存储在其中的实际数据大)。你要MemoryStream.ToArray() .

但是,我建议您使用 StringWriter而不是 MemoryStream ,这样你就可以避免 UTF-8 转换:

XmlSerializer serializer = new XmlSerializer(typeof(PlanogramSearchOptions));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, searchOptions);
string xml = writer.ToString();

另请参阅:Serialize an object to string

关于c# - 附加\0(反斜杠 0 或 Null)字符的 Xml 序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779690/

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