Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
克服PHP、SoapServer、UTF-8和非英语字符的编码问题?_Php_Xml_Soap_Encoding_Utf 8 - Fatal编程技术网

克服PHP、SoapServer、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'

我在让PHP与SoapServer+UTF-8配合使用时遇到问题。每当任何人发送带有非英语字符(即有趣的引号、重音字符等)的Soap请求时,SoapServer都会抛出一个异常,称为“坏请求”。我尝试使用utf8_decode甚至HTML特殊字符编码文本来解码请求。没有什么对我有用

我正在寻找一个方向正确的点,因为我现在迷路了。

确保两个和都用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()会有所帮助。