gpt4 book ai didi

c# - XmlSerializer 和表情符号

转载 作者:行者123 更新时间:2023-12-04 13:25:53 25 4
gpt4 key购买 nike

XmlSerializer 很难(= 不)反序列化包含表情符号字符的内容,例如 ��。我读过这样的字符在 XML 标准中实际上是非法的;但是,如果我想忠实地表示包含表情符号的聊天对话,则需要它们。如何反序列化并获取仅包含这些字符的字符串?

(稍后我将不得不处理这些字符,但让我们从(反)序列化它们开始:))

最佳答案

你可以这样做。第一个测试类:

[XmlRoot("root")]
public class Test {
[XmlElement("data")]
public string Root { get; set; }
}

然后:

var test = "<root><data>&#55357;&#56877;</data></root>";
var s = new XmlSerializer(typeof(Test));
using (var reader = new StringReader(test)) {
using (var xmlReader = XmlReader.Create(reader, new XmlReaderSettings() {
CheckCharacters = false // key part
})) {
var obj = s.Deserialize(xmlReader);
}
}

对 xml 阅读器使用 CheckCharacters = false 将阻止它检查是否有任何字符超出合法 XML 字符的范围。

关于c# - XmlSerializer 和表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951144/

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