Bạn cần phải phân tích JSON cuộc gọi sử dụng Wireshark, vì vậy bạn sẽ thấy nếu bạn bao gồm các ký tự trong sự hình thành của trang JSON hay không, ví dụ:
- Nếu trang là đơn giản nếu text/html
0000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d HTTP/1.1 200 OK.
0010 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 .Content -Type: t
0020 65 78 74 2f 68 74 6d 6c 0d 0a 43 61 63 68 65 2d ext/html ..Cache-
0030 43 6f 6e 74 72 6f 6c 3a 20 6e 6f 2d 63 61 63 68 Control: no-cach
- Nếu trang của các loại bao gồm tùy chỉnh JSON với MIME "charset = ISO-8859-1"
0000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d HTTP/1.1 200 OK.
0010 0a 43 61 63 68 65 2d 43 6f 6e 74 72 6f 6c 3a 20 .Cache-C ontrol:
0020 6e 6f 2d 63 61 63 68 65 0d 0a 43 6f 6e 74 65 6e no-cache ..Conten
0030 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d t-Type: text/htm
0040 6c 3b 20 63 68 61 72 73 65 74 3d 49 53 4f 2d 38 l; chars et=ISO-8
0050 38 35 39 2d 31 0d 0a 43 6f 6e 6e 65 63 74 69 6f 859-1..C onnectio
Tại sao lại như vậy? bởi vì chúng tôi không thể đặt trên trang của JSON một mục tiêu như thế này:
Trong trường hợp của tôi, tôi sử dụng các nhà sản xuất Kết nối Me 9210 Digi:
- tôi đã phải sử dụng một lá cờ để chỉ ra rằng người ta sẽ sử dụng MIME không chuẩn: p-> theCgiPtr-> = fDataType eRpDataTypeOther;
- Nó đã thêm MIME mới trong biến: strcpy (p-> theCgiPtr-> fOtherMimeType, "text/html; charset = ISO-8859-1");
Nó làm việc cho tôi mà không cần phải chuyển đổi dữ liệu thông qua JSON cho UTF-8 và sau đó thực hiện lại việc chuyển đổi trên trang ...
Nguồn
2012-03-07 17:22:06
Theo [này] (http://stackoverflow.com/a/13098683/95735) câu trả lời tôi t bất hợp pháp để chỉ định bộ ký tự cho 'application/json'. –
** ILLEGAL? ** Tôi hy vọng tôi không bị bắt vì cố gắng ... – jbowman