PHP Kıyımlama JSON unicode karakterler için Javascript gibi aynı sonucu üretmez

0 Cevap php

Benim web uygulaması JSON protokolü üzerinden sunucu ile iletişim kurar. Web uygulaması her JSON mesajı göndermeden önce, ben (zaten kodlanmış bir nesne üzerinde) üzerinde bir hmac-sha1 işlevini çalıştırın ve JSON istek başlığına çıkan HMAC yerleştirin.

Sunucu tarafında, ben nesneden HMAC, unset () HMAC ayıklamak ve sonra geri JSON nesnesini kodlamak ve bunun bir HMAC oluşturmak PHP ile JSON mesajı çözmesi.

HMACs sürece ben "ž, S, C" gibi karakterler kullanmayın eşleşecek. Ben mesajında ​​karakterleri kullandığınızda, HMACs artık uyuşmuyor.

Web uygulaması ben zaten kodlanmış json dize aktarmak için () jQuery.post kullanıyorum.

Ben ona geri json kodlanmış cevapta web uygulaması aldım veri gönderirseniz, uygulama sadece güzel "ž, C, S" gösterecektir.

Nasıl HMACs maç yapabilir?

UPDATE: This is only a problem on latest version of Firefox and Opera. It works fine on IE8 and Chrome. On the former browsers, the JSON string (before it is sent) is:

{"body":[{"name":"Žiga Kraljevič","email":"test@email.com","password":"secretpass"}],"header":{"apiID":"person-27jhfa83ha-js84sjj18dasjd","hmac":"e4259d6ef8f477c020d644409cc16dd9c42301e8"}}

Ikincisi tarayıcılarda (çalışıyor IE8 ve Chrome) üzerinde iken aşağıdaki gibidir:

{"body":[{"name":"\u017diga Kraljevi\u010d","email":"test@email.com","password":"secretpass"}],"header":{"apiID":"person-27jhfa83ha-js84sjj18dasjd","hmac":"e4e9e2d0d8d11728a2b4329ad6dacdb9409b1de1"}}

0 Cevap