XmlReader ReadString() 从“\r\n”中删除“\r”
XmlReader ReadString() removes '\r' from "\r\n"
我有一个 class 继承自 IXmlSerializable
。我已经正确地覆盖了 ReadXml
和 WriteXml
方法。
我正在使用 XmlSerializer
将对象 Serialize/Deserialize 写入 xml 文件。
当我 Serialize
对象时,它正确地将 \r\n
写入文件。但是当我以相同的方式 Deserialize
对象时, \r
已被删除,只有 \n
存在。我不明白为什么要这样做。
文本文件换行只处理'\n'
是正常的。 DOS/Windows C 库有 "text mode" 透明地将 CR-LF 转换为 LF 并返回。
它被称为标准化并在 XML specification
中明确定义
... an XML processor must normalize line breaks in parsed entities to #xA either by translating the two-character sequence #xD #xA and any #xD that is not followed by #xA to #xA on input before parsing, ...
可以通过 XmlTextReader.Normalization 禁用一些规范化。
我有一个 class 继承自 IXmlSerializable
。我已经正确地覆盖了 ReadXml
和 WriteXml
方法。
我正在使用 XmlSerializer
将对象 Serialize/Deserialize 写入 xml 文件。
当我 Serialize
对象时,它正确地将 \r\n
写入文件。但是当我以相同的方式 Deserialize
对象时, \r
已被删除,只有 \n
存在。我不明白为什么要这样做。
文本文件换行只处理'\n'
是正常的。 DOS/Windows C 库有 "text mode" 透明地将 CR-LF 转换为 LF 并返回。
它被称为标准化并在 XML specification
中明确定义... an XML processor must normalize line breaks in parsed entities to #xA either by translating the two-character sequence #xD #xA and any #xD that is not followed by #xA to #xA on input before parsing, ...
可以通过 XmlTextReader.Normalization 禁用一些规范化。