.net xml序列化程序不编码某些字符

时间:2009-09-09 22:41:34

标签: .net xml serialization xml-serialization

我是一个包含多个string类型属性的类。其中一个值包含十六进制值96的字符。如果我将类序列化为xml,则xml序列化程序不会对该字符进行编码,如果我使用OpenXML在各种工具(如IE或SQLServer)中查看xml,则会抱怨字符在xml文档中无效。 xml序列化程序不应该对此字符进行编码吗?

2 个答案:

答案 0 :(得分:1)

这可能会有所帮助(警告 - 通过搜索引擎找到,未经测试):.NET Web Services Fail on Unicode Control chars

基本上它表示XmlSerializer在反序列化Unicode控制字符时失败。

在评论中,其中一张海报链接到Hexadecimal value 0x is an invalid character。那里没有列出0x96,所以我不确定这是同一个问题。

答案 1 :(得分:0)

我能够通过将编码更改为iso-8859-1来解决错误。就我而言,该代码页包含了我的数据所消耗的所有字符。我认为从理论上讲,数据可能包含其他字符,但这是一个合适的解决方法。