博客园  :: 首页  :: 联系 :: 管理

WEB Service 传递信息时候,会把 /r/n 变成 /n

Posted on 2009-01-05 09:59  sunrack  阅读(434)  评论(0)    收藏  举报

我们在使用WEB Service时,需要注意的一点是,传递过程中会丢失一些字符,比较典型的是 /r/n 中 /r 回车字符会被丢弃。这是XML规范所导致的问题。XML规范关于这部分的描述如下:

2.11 行尾处理
为编辑的方便起见,存储XML已析实体的计算机文件经常用行来组织。通常这些行用回车符(#xD)和换行符(#xA)的一些组合来分隔。

为了使应用的工作简单化,对于一个外部已析实体或内部已析实体的常量实体值中包含的任何两字符常量序列"#xD#xA"或单独的常量#xD,XML处理器都应换成#xA传递给应用。(这可以通过在进行语法分析前将所有行分隔符规范成#xA而方便地实现。)

\r   回车(跑到最前面)  
\n  换行(下一行)  

参考资料:

WebServices eat \r in \r\n
http://vidmar.net/weblog/archive/2005/04/03/1203.aspx

XML规范对此相关的解释
http://www.w3.org/TR/2004/REC-xml-20040204/#sec-line-ends
中文版的介绍看下面地址:
http://xml.coverpages.org/xml10-chinese.html#sec-line-ends

\r\n和\r
http://topic.csdn.net/t/20060317/09/4620216.html

Web Service - Carriage Return
http://forums.msdn.microsoft.com/en-US/netfxremoting/thread/bb0ff1f8-0300-4910-be10-6594dff56de4