PHP 와 JAVA 의 XML-RPC 중국어 문제 해결 방법

3127 단어 PHHPP 와제 이JAAV
질문 설명:      PHP 와 JAVA 를 사용 하여 XML-RPC 를 조작 할 때 request 에 중국어 문자 가 포함 되 어 있 으 면 다음 과 같은 스타일 로 자동 으로 인 코딩 됩 니 다.&\#27426;&\#27426; 。      환경:PHP 에 XML-RPC 내 장 된 API,Apache 의 XML-RPC 의 JAVA API      PHP 의 해결 방법:      처음에 중국어 문자 의 인 코딩 문제 인 줄 알 았 기 때문에 저 는 각종 인 코딩 방식 으로 중국어 문 자 를 인 코딩 한 다음 에 string xmlrpc 에 게 건 네 주 려 고 했 습 니 다.encode_request(string method,mixed params)함수 로 XML 형식의 요청 을 생 성 했 지만 여전 합 니 다.아무리 생각해 도 그 경 계 는 생각 나 지 않 는 다.Google 을 샅 샅 이 뒤 졌 지만 해결 방법 을 찾 지 못 했 습 니 다.나중에 찾 았 습 니 다.http://xmlrpc-epi.sourceforge.net/이 사이트.알 고 보 니 PHP 문서 에서 주 는 xmlrpcencode_request(string method,mixed params)함수 에 선택 가능 한 인자 가 하나 줄 었 습 니 다!!!!정확 한 것 은 이 렇 습 니 다:string xmlrpcencode_request(string method, mixed params [, array output_options])!!output_options 의 구 조 는 다음 과 같 습 니 다:$outputoptions = array(                       "output_type" => "xml",                       "verbosity" => "pretty",                       "escaping" => array("markup", "non-ascii", "non-print"),                       "version" => "xmlrpc",                       "encoding" => "utf-8"                      );or$output_options = array("output_type" => "php");원문 설명 은 다음 과 같다:outputtype: return data as either php native data types or xml encoded. ifphp is used, then the other values are ignored. default = xmlverbosity: determine compactness of generated xml. options are no_white_space, newlines_only, and pretty. default = prettyescaping: determine how/whether to escape certain characters. 1 or more values are allowed. If multiple, they need to be specified as a sub-array. options are: cdata, non-ascii, non-print, and markup.default = non-ascii, non-print, markupversion: version of xml vocabulary to use. currently, three are supported: xmlrpc, soap 1.1, and simple. The keyword auto is also recognized to mean respond in whichever version the request came in. default = auto (when applicable),xmlrpcencoding:the encoding that the data is in.Since PHP defaults to iso-8859-1 you will usually want to use that.Change it if you know what you are doing.default=iso-8859-1 테스트 를 통 해 관건 은"escaping"=>array("markup")라 는 값 에서 세 번 째 매개 변 수 를 다음 값 으로 전송 하면 문 제 를 해결 할 수 있 습 니 다.$outputoptions = array(                       "output_type" => "xml",                       "verbosity" => "pretty",                       "escaping" => array("markup"),                       "version" => "xmlrpc",                       "encoding" => "utf-8"                      );      Apache JAVA XML-RPC 솔 루 션     아파 치가 제공 하 는 API 를 찾 아 보 았 지만 PHP 와 같은 세 번 째 인 자 를 찾 지 못 한 것 같 습 니 다.어 쩔 수 없 이 그 가 Base 64 종 류 를 제공 한 것 을 발 견 했 습 니 다.저 는 모든 중국어 문 자 를 Client 에서 Base 64 로 인 코딩 한 다음 에 request 를 Server 에 보 낸 다음 에 서버 에서 Base 64 로 디 코딩 할 수 밖 에 없 었 습 니 다.하하~~문제 도 해결 할 수 있 습 니 다!근 데 더 좋 은 방법 이 있 을 지 모 르 겠 어 요.     더 좋 은 해결 방법 이 있 는 사람 은 저 에 게 연락 하 세 요.     QQ:3470431     MSN:[email protected]     Email:[email protected]

좋은 웹페이지 즐겨찾기