繁体   English   中英

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM