使用PHP的SoapClient将UTF-16字符发送到WCF服务

时间:2009-05-11 15:56:17

标签: php soap utf-8 utf-16

我的PHP应用程序正在接收用户输入并将其发送到WCF Web服务。 有时我的用户会从Word复制并粘贴,并将UTF-16字符放入其消息中,例如“En Dash”\ u2013

发生这种情况时会出现以下错误。

  

PHP致命错误:SOAP-ERROR:编码:   字符串'\ xe2 ...'无效   第31行***中的utf-8字符串

我已经尝试将SoapClient构造函数的编码选项设置为'UTF-16'。 我的请求似乎有效,但我注意到xml标头上的编码仍然设置为UTF-8。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

WCF仅在UTF-8中工作,默认情况下,单词在UTF-16中工作,这解释了为什么它的外观像UTF8

尝试使用mbstring来纠正问题