Tôi có một tập lệnh PHP đề cập đến nhiều ngôn ngữ khác nhau. Thật không may, bất cứ khi nào tôi cố gắng sử dụng json_encode
, mọi đầu ra Unicode được chuyển đổi thành các thực thể thập lục phân. Đây có phải là hành vi dự kiến? Có cách nào để chuyển đổi đầu ra thành các ký tự UTF-8 không?Tại sao hàm json_encode của PHP chuyển đổi chuỗi UTF-8 thành các thực thể thập lục phân?
Dưới đây là một ví dụ về những gì tôi đang nhìn thấy:
ĐẦU VÀO
echo $text;
OUTPUT
База данни грешка.
ĐẦU VÀO
json_encode($text);
OUTPUT
"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."
Aha. Cảm ơn! Tôi nên đọc tài liệu kỹ càng hơn. Cảm ơn. –
Tôi tự hỏi nếu có cách nào để đặt cài đặt này làm mặc định. –
JSON_UNESCAPED_UNICODE đã được giới thiệu trong PHP 5.4.0 và không khả dụng trong các phiên bản trước đó. Khi sử dụng nó trong các phiên bản trước, bạn sẽ nhận được lỗi này: "Cảnh báo: json_encode() hy vọng tham số 2 là dài, chuỗi được đưa ra trong ...". Xem câu trả lời của CertaiN bên dưới để biết giải pháp 5.3. –