목차
Constructor error
Fault
Error
Result
Request
Response
Debug
php教程 php手册 php 调用 webservice 中文乱码解决方案

php 调用 webservice 中文乱码解决方案

May 25, 2016 pm 04:57 PM
webservice

由于工作的需要,帮我的同事阿韬测试一下.net的webservice在PHP下的应用.于是开始上网找资料,发现很多php教程er都是用nusoap.于是下载一个回来.用它自带的例子修改一下.可在文章的后面的附件中找到下载地址.代码如下:

<?php
require_once (&#39;../nusoap/lib/nusoap.php&#39;);
$client = new soapclient(&#39;http://localhost/TestService/Service1.asmx?WSDL&#39;, true);
$err = $client->getError();
if ($err) {
    echo &#39;<h2 id="Constructor-nbsp-error">Constructor error</h2><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&#39; . $err . &#39;
로그인 후 복사
로그인 후 복사
'; } // Doc/lit parameters get wrapped $param = array( 'str' => 'China' ); $result = $client->call('HelloWorld', array( 'parameters' => $param ) , '', '', false, true, 'document', 'encoded'); // Check for a fault if ($client->fault) { echo '

Fault

&#39;;
    print_r($result);
    echo &#39;
로그인 후 복사
'; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '

Error

&#39; . $err . &#39;
로그인 후 복사
'; } else { // Display the result echo '

Result

&#39;;
        print_r($result);
        echo &#39;
로그인 후 복사
'; } } echo '

Request

&#39; . htmlspecialchars($client->request, ENT_QUOTES) . &#39;
로그인 후 복사
'; echo '

Response

&#39; . htmlspecialchars($client->response, ENT_QUOTES) . &#39;
로그인 후 복사
'; echo '

Debug

&#39; . htmlspecialchars($client->debug_str, ENT_QUOTES) . &#39;
로그인 후 복사
';

如果我的webservice返回的内容中没有中文的话,则很简单就上面的例子就成功了.但是一个新的问题出现了,如果我的webservice中有中文的话,返回的值就变成了乱码.查看了一下response的结果,是正确的.应该是用nusoap处理的时候出现了问题.

由于我没有安装PHP断点调试工具(其实我都不知道有没有这个工具).所以只能一个方法,一个方法看.看了一天,终于看完了.更改了nusoap.php两个地方就OK了.

更改的地方:

86行的:var $soap_defencoding = 'UTF-8';

4998行的:var $decode_utf8 = false;

不更改也可以,不过在调用的时候就必须指定编码.

$client = new soapclient(&#39;http://localhost/TestService/Service1.asmx?WSDL&#39;, true); 
$client->soap_defencoding = &#39;UTF-8&#39;; 
$client->soap_defencoding = &#39;UTF-8&#39;;
로그인 후 복사

这样的效果也是一样的,如果请求的时候参数有中文,只需用post或者get的方式传送就可以了,如果需要将带有中文的参数写在代码里面,则需要把编码转成UTF8.可能参考附件.

附件:

nusoap源文件: http://www.cnblogs.com/Files/coolstr/nusoap.zip

各种编码转换源文件: http://www.cnblogs.com/Files/coolstr/chinese.zip


教程网址:

欢迎收藏∩_∩但请保留本文链接。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)