tôi gửi một thân JSON POST để dịch vụ web PHP của tôi trông giống như thế này:PHP Unicode trong JSON
{
"foo": "☺"
}
Khi tôi echo ra cơ thể trong PHP, tôi thấy điều này:
{
"foo":"\xe2\x98\xba"
}
tôi cũng đã cố gắng gửi \uXXXX
tương đương:
{
"foo": "\u263a"
}
này có hơn nữa, trong đó các chuỗi JSON liệu nhận d có "foo":"\\u263a"
, nhưng sau json_decode
giá trị được chuyển thành \xe2\x98\xba
.
Điều này gây ra sự cố khi tôi sử dụng giá trị trong phản hồi JSON. Tôi nhận được:
json_encode(): Invalid UTF-8 sequence in argument
Tại đơn giản nhất, đây là những gì xảy ra tại sao tôi cố gắng JSON mã hóa các chuỗi:
> 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
Câu hỏi của tôi là: làm thế nào tôi có thể nhận được tốt nhất khuôn mặt cười này từ một kết thúc ứng dụng của tôi cho người khác?
Tôi đánh giá cao bất kỳ trợ giúp nào bạn có thể cung cấp.
Làm thế nào bạn "[...] echo out the body [...]"? – PleaseStand
'echo" \ xe2 \ x98 \ xba ";' hoạt động; hiển thị smilie unicode chính xác. –
@PleaseStand Tôi đã gửi nó đến error_log với 'error_log (file_get_contents ('php: // input'))'. –