【问题标题】:.net xml serializer not encoding some characters.net xml序列化程序未编码某些字符
【发布时间】:2009-09-09 22:41:34
【问题描述】:

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

【问题讨论】:

  • 您使用的是哪种编码?
  • 为什么你觉得它应该对那个字符进行编码?这是一个完全有效的 Unicode 字符。

标签: .net xml serialization xml-serialization


【解决方案1】:

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

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

在 cmets 中,其中一张海报链接到 Hexadecimal value 0x is an invalid character。 0x96 未在此处列出,因此我不确定这是不是同一个问题。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2010-09-09
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      相关资源
      最近更新 更多