克服PHP、SoapServer、UTF-8和非英语字符的编码问题?
我在让PHP与SoapServer+UTF-8配合使用时遇到问题。每当任何人发送带有非英语字符(即有趣的引号、重音字符等)的Soap请求时,SoapServer都会抛出一个异常,称为“坏请求”。我尝试使用utf8_decode甚至HTML特殊字符编码文本来解码请求。没有什么对我有用 我正在寻找一个方向正确的点,因为我现在迷路了。确保两个和都用UTF-8编码初始化:克服PHP、SoapServer、UTF-8和非英语字符的编码问题?,php,xml,soap,encoding,utf-8,Php,Xml,Soap,Encoding,Utf 8,我在让PHP与SoapServer+UTF-8配合使用时遇到问题。每当任何人发送带有非英语字符(即有趣的引号、重音字符等)的Soap请求时,SoapServer都会抛出一个异常,称为“坏请求”。我尝试使用utf8_decode甚至HTML特殊字符编码文本来解码请求。没有什么对我有用 我正在寻找一个方向正确的点,因为我现在迷路了。确保两个和都用UTF-8编码初始化: $client = new SoapClient("some.wsdl", array('encoding'=>'UTF-8'
$client = new SoapClient("some.wsdl", array('encoding'=>'UTF-8'));
$server = new SoapServer("some.wsdl", array('encoding'=>'UTF-8'));
带有“有趣的引号、重音字符等”的请求的XML是否有效?显然,下一步是验证您收到的请求是否实际编码为UTF-8。像WireShark这样的网络嗅探器(或者对一个普通的旧telnet客户端进行一点工作都可以)可以让您检查传递给服务器的确切数据。仔细检查并验证它实际上是有效的UTF-8。在soap响应上使用utf8_encode()会有所帮助。