Sie benötigen die JSON-Anrufe mit Wireshark zu analysieren, so dass Sie sehen, wenn Sie die charset in der Bildung der JSON-Seite oder nicht, zum Beispiel umfassen:
- Wenn die Seite einfach, wenn 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
- Wenn die Seite des Typs, der Brauch ist JSON mit 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
Warum ist das? weil wir nicht auf der Seite von JSON ein Ziel so sagen kann:
In meinem Fall habe ich mit dem Hersteller in Verbindung Me 9210 Digi verwenden:
- ich eine Flagge zu verwenden hätte, um anzuzeigen, dass man verwenden Nicht-Standard-MIME: p-> theCgiPtr-> = fDataType eRpDataTypeOther;
- Es hinzugefügt das neue MIME in der Variablen: strcpy (p-> derCgiPtr-> fOtherMimeType, "Text/html; Zeichensatz = ISO-8859-1");
Es funktionierte für mich, ohne die Daten von JSON für UTF-8 weitergegeben konvertieren zu müssen und dann wiederholen Sie die Konvertierung auf der Seite ...
nach [dieser] (http://stackoverflow.com/a/13098683/95735) Antwort i Es ist illegal charset für 'application/json' anzugeben. –
** ILLEGAL? ** Ich hoffe, ich werde nicht verhaftet für den Versuch ... – jbowman