wyślę ciało JSON Prześlij do mojego serwisu WWW PHP, który wygląda mniej więcej tak:Unicode w PHP JSON
{
"foo": "☺"
}
Kiedy echo z ciała w PHP, widzę to:
{
"foo":"\xe2\x98\xba"
}
próbowałem również wysyłanie \uXXXX
równoważne:
{
"foo": "\u263a"
}
to ma dalej, że surowy JSON ciąg odbierać d miał "foo":"\\u263a"
, ale po json_decode
wartość zmieniła się na \xe2\x98\xba
.
Powoduje to problemy, gdy używam wartości w odpowiedzi JSON. I otrzymujemy:
json_encode(): Invalid UTF-8 sequence in argument
Mówiąc najprościej, jest to, co się dzieje, dlaczego próbuję JSON zakodować ciąg:
> php -r 'echo json_encode("\x98\xba\xe2");'
PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in Command line code on line 1
Moje pytanie brzmi:: jak mogę najlepiej dostać tę buźkę z jednej koniec mojej aplikacji do drugiej?
Byłbym wdzięczny za każdą pomoc, jaką mógłbyś zaoferować.
W jaki sposób "[...] odbijacie od ciała [...]"? – PleaseStand
'echo" \ xe2 \ x98 \ xba ";' działa; pokazuje prawidłowy smilie Unicode. –
@PleaseStand Wysłałem go do error_log z 'error_log (file_get_contents ('php: // input'))'. –