Khi sử dụng echo json_encode ($ array, JSON_UNESCAPED_UNICODE);json_encode với tùy chọn JSON_UNESCAPED_UNICODE
tôi nhận được lỗi này
Cảnh báo: json_encode() dự đoán chính xác 1 tham số, 2 cho
Khi sử dụng echo json_encode ($ array, JSON_UNESCAPED_UNICODE);json_encode với tùy chọn JSON_UNESCAPED_UNICODE
tôi nhận được lỗi này
Cảnh báo: json_encode() dự đoán chính xác 1 tham số, 2 cho
phiên bản php của bạn có thể quá thấp:
http://php.net/manual/en/function.json-encode.php
string json_encode (mixed $value [, int $options = 0 ])
5.3.0 The options parameter was added
hmm ok và nếu đây là trường hợp làm thế nào tôi có thể làm điều tương tự nhưng với kịch bản khác nhau – Ben
Tại http://php.net/manual/en/function.json-encode.php có một bình luận với " Thay thế đơn giản cho JSON_UNESCAPED_UNICODE (ví dụ: PHP <5.4) " – biziclop
@EvenJohnson. 'JSON_UNESCAPED_UNICODE' có lẽ không thực sự cần thiết. Nếu phiên bản PHP của bạn quá thấp, chỉ cần làm mà không có nó. – TRiG
Xem bản vá tại http://code.google.com/p/apns-php/issues/detail?id=22 cho phép chức năng tương tự trên PHP 5.2.
Về cơ bản chạy một cái gì đó như thế này:
foreach ($array as &$val) {
$val = preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
function($matches) {
return mb_convert_encoding(pack('H*', $matches[1]), 'UTF-8', 'UTF-16');
}, $val);
}
Ngay cả khi điều này đến gần, điều này là sai về mặt kỹ thuật. Ngoài ra PHP 5.4 có lỗi ở đây, xem [PHP Bug # 62010 json_decode tạo ra các chuỗi byte không hợp lệ] (https://bugs.php.net/bug.php?id=62010) – hakre
Điều này không hoạt động – user1775671
Lệnh 'tham số options' đã được bổ sung trong PHP 5.3.0. –
Và JSON_UNESCAPED_UNICODE được thêm vào trong PHP 5.4.0 –
Điều này có thể hữu ích: http://stackoverflow.com/questions/16498286/why-does-the-php-json-encode-function-convert-utf-8-strings-to -hexadecimal-entit –