Tôi đang sử dụng WordPress cùng với Plugin API JSON (http://wordpress.org/extend/plugins/json-api/) để tạo câu trả lời cho trang web khác của chúng tôi.Mã hóa JSON lạ sử dụng json_encode
Tôi đã trúng một vấn đề thực sự kỳ lạ (chúng tôi đang sử dụng PHP 5.3.6), khi tôi vượt qua các mảng sau http://pastebin.com/xdfYjrvK để json_encode() nó mang lại cho tôi điều này (với json content-type): http://pastebin.com/T61XGPP5
Vì vậy, các crap trong đầu, trong ví dụ trên nó là 2609 và 0 cuối cùng, nó thay đổi tùy thuộc vào kích thước của phản ứng, nội dung hơn -> số hex cao hơn. Nó cũng chỉ xuất hiện khi số lượng phản hồi là "đủ cao", do đó, nó hoạt động trên các phản hồi nhỏ. Đầu tiên tôi nghĩ nó là plugin, nhưng nó hoạt động cục bộ (trên hai máy Mac OS X khác nhau) và chúng tôi đã cập nhật tất cả các gói trên VPS (Debian, Apache, Nginx, PHP) lên phiên bản mới nhất.
Nó chỉ hiển thị khi gửi content-type, không phải khi xuất ra kết quả $ với văn bản đơn giản thay vì application/json:
$charset = get_option('blog_charset');
if (!headers_sent()) {
header('HTTP/1.1 200 OK', true);
header("Content-Type: application/json; charset=$charset", true);
}
echo $result;
$ charset được thiết lập để utf-8.
Bảng điều khiển chrome của Google cho biết: "Tài nguyên được hiểu là Tài liệu nhưng được chuyển với ứng dụng loại/json MIME".
Vì vậy, có ai có manh mối gì đang xảy ra ở đây không?
$ result được khởi tạo ở đâu? Đây có phải là giá trị json_encode-d không? –
Có, nó xuất phát từ một chức năng khác sẽ xử lý json_encoding kèm theo. –