[英]Creating and using custom XML special characters with XmlSerializer
[英]XmlSerializer special characters
目前,我有以下代码:
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var myObject = new MyObject() {Text = "€ 232.22"};
StringBuilder sb = new StringBuilder();
var xmlWriterSettings = new XmlWriterSettings();
XmlWriter writer = XmlWriter.Create(sb, xmlWriterSettings);
new XmlSerializer(typeof(MyObject)).Serialize(writer, myObject);
Console.WriteLine(sb.ToString());
Console.ReadKey();
}
}
[Serializable]
public class MyObject
{
public MyObject()
{
}
[XmlAttribute()]
public string Text { get; set; }
}
}
而且我有一个问题,即我给序列号序列化程序一个欧元符号€时,它返回一个?,因此我尝试传递€,但它对&进行编码并返回€。 有人知道解决此问题的优雅方法吗?
非常感谢,
克里斯
确保您自己使用了一种正确的编码样式,即xml文档本身,以及序列化和反序列化步骤。
您可以在整个xml文档的规范和处理过程中使用utf-8编码来确保这一点。
不是序列化器,是控制台。 试试Console.WriteLine("€");
或尝试Console.ReadKey(false);
然后键入€,您将得到相同的结果。
(假设您的控制台字体没有€,而默认字体则没有)。
无论如何,€字符都不是“特殊字符”,但是如果字体没有字形,则该字体将无法处理ABC。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.