PHP, SoapServer, UTF-8, ve İngilizce olmayan karakterler ile Kodlama Sorunları aşmak?

2 Cevap php

Ben sorunları SoapServer + UTF-8 ile güzel oynamak için PHP alıyorum yaşıyorum. Herzaman kimse olmayan ingilizce karakterler (yani komik tırnak, aksanlı karakterler, vb) SoapServer söyleyerek bir istisna atar ile bir Soap isteği gönderir "Bad Request." Ben utf8_decode ile isteği çözme denedim ve hatta HTML Özel Karakterler kodlanmış metin. Benim için hiçbir şey çalışıyor.

Ben şu anda kaybettim çünkü ben doğru yönde bir nokta arıyorum.

2 Cevap

emin olun her iki SoapServer ve SoapClient UTF-8 kodlaması ile başlatılır:

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

yok "vb komik tırnak, aksanlı karakterler," ile istekleri XML doğrulamak?

Bariz bir sonraki adım, aldığınız istek is aslında UTF-8 olarak kodlanmış olduğunu doğrulamak olacaktır. WireShark (hatta sadece bir düz eski telnet müşteri ile iş biraz işe yarayabilir) gibi bir ağ dinleyicisi sunucuya iletilen verileri tam inceleyelim olacaktır. Bu bakmak ve aslında geçerli bir UTF-8 olduğunu doğrulayın.