2016-08-05 10 views
-1

Ich habe diese XML bekam (ich kontrolliere es nicht wichtig):OkHttp Bad Encoding

<?xml version="1.0" encoding="iso-8859-1" ?> 
    <test> 
     <text name="Café" /> 
    </test> 

Aber es gibt nicht das richtige Ergebnis:

Caf

Mein Code ist das grundlegende Beispiel: http://square.github.io/okhttp/

Header-Anfrage zurückgeben:

HTTP/1.1 200 OK 
Content-Type: text/xml 
Last-Modified: Mon, 08 Aug 2016 02:41:08 GMT 
Accept-Ranges: bytes 
ETag: "1bbb4511ef1d11:0" 
Server: Microsoft-IIS/8.5 
X-Powered-By: ASP.NET 
Date: Mon, 08 Aug 2016 02:42:45 GMT 

Antwort

1

ich glaube, Sie encoding = "utf-8" gehen auf Einstellungen >> Editor >> Dateicodierungen und ändern Sie die IDE-Codierung und Projekt Codierung utf-8 verwenden sollten.

ex Bild:

ex image

+0

Es ist bereits gut – Josinaldo

0

Der Server ohne Codierung reagiert so OkHttp den Standard fest codierte UTF-8 verwendet. OKHttp ignoriert das XML-Codierungs-Tag, wenn Sie es als String lesen.

Speziell ist 2 Bytes in UTF-8 und 1 Byte in ISO-8859-1.

Sie haben drei Möglichkeiten

1) Ändern Sie die Datei, die mit UTF-8 codiert und das Attribut XML-Codierung ändern. Idealerweise (aber optional) geben Sie den Zeichensatz UTF-8 in den Antwortheadern an.

2) Lassen Sie die Datei als iso-latin-1, aber geben Sie den Zeichensatz in der Antwort Content-Type-Header zurück.

3) Wenn Sie die Datei oder die Header nicht steuern können, sollten Sie sie als eine Folge von Bytes lesen, die Sie einer XML-Bibliothek zur Verarbeitung mit dem Encoding-Header bereitstellen.

+0

mit Headern bearbeitet – Josinaldo