根据https://www.w3.org/TR/REC-xml/#sec-line-ends \ n在xml文本实体中不是有效字符。所有\ n应该在XML字符串中转义为

或
。
但是,我尝试在soap呼叫中向我的后端服务器发送一封电子邮件,并且正在删除换行符。
所以我开始使用参数$arguments
,这样: -
error_log(__FILE_.':'.__LINE__.' '.var_export($arguments, true));
返回
array('email_parameters' => array ('email_message' => "Title\n\nBody\nSignature"));
我拨打soapClient->__soapCall($method, $arguments);
然后登录
error_log(__FILE_.':'.__LINE__.' '.var_export($this->soapClient->__getLastRequest(), true));
但是,我得到了"<email_message>Title\n\nBody\nSignature</email_message>"
根据w3规则,这是错误的。如果我提前尝试转义\ n,那么$argument
是
array('email_parameters' => array ('email_message' => "Title

Body
Signature"))
然后我在请求中得到以下内容: -
<email_message>Title&#xA;&#xA;Body
Signature</email_message>`
那么如何才能让soap客户端正确编码\ n 

或
,而不是对html实体进行双重编码?