Преодолеть проблемы кодирования с PHP, SoapServer, UTF-8 и не английскими символами? - PullRequest
2 голосов
/ 03 апреля 2009

У меня проблемы с получением PHP для приятной игры с SoapServer + UTF-8. Каждый раз, когда кто-либо отправляет запрос на мыло с неанглийскими символами (например, смешные кавычки, акцентированные символы и т. Д.), SoapServer выдает исключение, говорящее «неверный запрос». Я попытался расшифровать запрос с помощью utf8_decode, и даже специальные символы HTML закодировали текст. У меня ничего не работает.

Я ищу точку в правильном направлении, потому что сейчас потерян.

Ответы [ 2 ]

4 голосов
/ 03 апреля 2009

убедитесь, что оба SoapServer и SoapClient инициализированы с кодировкой UTF-8:

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

делает XML запросов с «забавными кавычками, символами с акцентом и т. Д.» проверки?

0 голосов
/ 03 апреля 2009

Очевидным следующим шагом будет проверка того, что полученный вами запрос действительно закодирован как UTF-8. Сетевой анализатор, такой как WireShark (или даже небольшая работа с простым старым клиентом telnet, может работать), позволит вам изучить точные данные, передаваемые на сервер. Посмотрите это и убедитесь, что это действительно UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...