克服PHP,SoapServer,UTF-8和非英文字符的编码问题?

时间:2009-04-03 16:33:35

标签: php xml soap encoding utf-8

我在使用SoapServer + UTF-8很好地使用PHP时遇到了问题。任何时候任何人发送带有非英文字符的Soap Request(即有趣的引号,重音字符等),SoapServer都会抛出一个异常,说“Bad Request”。我尝试用utf8_decode解码请求,甚至HTML特殊字符编码文本。没有什么对我有用。

我正在寻找正确方向的一点,因为我此刻迷失了方向。

2 个答案:

答案 0 :(得分:4)

确保使用UTF-8编码初始化SoapServerSoapClient

$client = new SoapClient("some.wsdl", array('encoding'=>'UTF-8'));
$server = new SoapServer("some.wsdl", array('encoding'=>'UTF-8'));

使用“有趣的引号,重音字符等”来处理请求的XML。验证

答案 1 :(得分:0)

明显的下一步是验证您收到的请求 实际编码为UTF-8。像WireShark这样的网络嗅探器(或者甚至可以使用普通的旧telnet客户端进行一些工作)可以让你检查传递给服务器的确切数据。仔细查看并确认它实际上是有效的UTF-8。