Php sabun istemci özel karakterler ile ilgili sorunlar

5 Cevap php

I this question ile ilgili bir sorun var. Bazı isimler döndürür (ayrıca php kullanarak) bir web hizmeti var. Bunlardan herhangi biri de İsveç karakterleri (å, ä veya ö) ve muhtemelen diğer içeriyorsa i (biz hiçbir XML belge var gibi görünüyor) bir SoapFault olsun. Ben ancak $ soapcalo-> __getLastResponse () kullanarak tam (doğru afaik) yanıt görebilirsiniz.

Nasıl özel karakterler ele? Ben istemci hem de sunucu ama başarı özniteliği kodlama (utf-8) ekleyerek denedim.

Edit: sabun cevap alıntı:

<?xml version="1.0" encoding="UTF-8"?>
 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="...">
 <SOAP-ENV:Body>
  <ns1:callFunctionResponse>
   <ns1:Response>
    <ns1:result>success</ns1:result>
    <ns1:content>
     <Contact>
      <userName>VIB09SLA9EP</userName>
      <firstName>Patrik</firstName>
      <lastName>Stenstr&ouml;m</lastName>
     </Contact>
    </ns1:content>
   </ns1:Response>
  </ns1:callFunctionResponse>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Teşekkürler!

5 Cevap

Tamam herkes - sorun nihayet çözüldü, ben similair sorunları olan herkes için buradan sonrası düşündüm. Bu çıkıyor gibi, sorun, önceki süreçte oluştu.

SOAP cevap içeriği DOMDocument ile yapı inşa üretildi. Daha sonra bu saveHTML fonksiyonu ile kaydedildi. Bu çıkıyor gibi, bu işlev istemci üzerinde sabun çözme kırar bazı HTML kodlamaları ekler.

Yerine SaveXML kullanırken cevap (etiketleri ve diğer garip şeyler eklerken de) başarıyla yoluyla alır ve ayrıca sabun müşteri tarafından doğru dizeleri çözülür çalışır.

Ben bu onun sonu umuyoruz, ama asla bilemezsiniz :)

Doğru yerleri kontrol için yardımcı olanlara tüm yardım ve +1 için teşekkürler.

/ Victor

Sadece bir tahmindi: Eğer isimler aslında are utf-8 kodlanmış emin yaptınız mı? Ben sadece SOAP özniteliği ayarlayarak değerlerin gerçek kodlamasını değiştirmek noch olacağını düşünürdüm. Eğer SABUN yoluyla onları dönmeden önce adları utf8_encode kullanarak denediniz mi?

Değil bu yardım belki ama bakacağız emin HTML entities?

'SoapClient doğru utf8 verilerin kodunu değil' googling yaparken ben ilk sonucu olarak bu soruyu vurmak Çünkü

Benim sorunum bu özel karakter nerede boru UTF-8 kodlanmış ve php SoapClient düzgün onları çözme değil iniyor olmasıydı.

Bu benim sınıfları UTF-8 için vardır Pazar sabahı şovmen nod php dosyaların kesitler kodlamasını değiştirerek tespit edildi.