目前我有以下代码:
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; }
}
}我有一个问题,当前序列化程序,当我给它一个欧元符号时,它返回一个?,然后我尝试传递,但它编码了-,并返回了欧元,有人知道解决这个问题的好方法吗?
非常感谢,
克里斯
发布于 2011-12-11 22:50:07
确保在xml文档本身以及序列化和反序列化步骤中使用正确的编码样式。
您可以通过在xml文档的整个规范和处理过程中使用utf-8编码来确保这一点。
发布于 2010-08-11 19:53:22
这不是序列化程序,而是控制台。尝试Console.WriteLine("€");或Console.ReadKey(false);,然后输入results,您将得到相同的结果。
(假设您的控制台字体没有欧元,而默认字体没有欧元)。
欧元字符在任何情况下都不是“特殊字符”,但是如果一个字体没有它们的字形,它就不能处理ABC。
https://stackoverflow.com/questions/3457517
复制相似问题