2017-10-23 1 views
0

Ich arbeite an meiner ersten Android-Anwendung, ich bekomme einige arabische Nachrichten in der JSON-Antwort von einem Web-Service in zwei verschiedenen Formaten. Wenn ich einen von ihnen anzeige, werde ich korrekt übersetzt, aber andere werden so gedruckt, wie es in der verschlüsselten Nachricht ist.codierte Strings Probleme

Hier ist die erste:

\u0635\u0641\u0631 \u0627\u0644\u0645\u0638\u0641\u0631 

Diese auf die richtige Zeichenfolge Arabisch umgewandelt wird, wie beabsichtigt. aber

کامران 

nicht der Fall, ich hatte erwartet, dass seine eine UTF-8 kodierten Nachricht, aber ich bin nicht in der Lage, es zu konvertieren. Kann mir jemand helfen, diese verschlüsselte Nachricht zu verstehen?

Hier ist, wie ich versuchte, seine zu konvertieren aber unverändert:

public String decodeString(String encodedString) { 
    try { 
    return new String(encodedString.getBytes(), "UTF-8"); 
    } catch(Exception e){ 
    e.printStackTrace(); 
    return encodedString; 
    } 
} 

jede Hilfe sehr geschätzt wird.

Vielen Dank für Ihre Zeit und Unterstützung in dieser Angelegenheit.

Wenn ich (کامران) Nachricht hier: http://www.cafewebmaster.com/online_tools/utf8_decode überprüfe ich bekomme die richtige Antwort.

Bitte teilen Sie auch einige Details zum Kodierungsschema i-e was ist der Unterschied zwischen beiden Kodierungen.

Antwort

2

کامران Sieht aus wie die HTML-Codierung der Unicode-Codepunkte. Sie müssen den HTML-Code dekodieren, indem Sie Apache commons StringEscapeUtils.unescapeHtml() verwenden.

Hier ist die gradle Abhängigkeit für die Bibliothek:

compile 'commons-lang:commons-lang:2.6' 
+0

Haben Sie Idee dieses Format (\ u0635) haben, wenn ich es anprobiert: http://www.cafewebmaster.com/online_tools/utf8_decode es war unfähig, das zu verstehen. welche Codierung ist das? – NoNaMe

+0

@RolandIllig guter Punkt, ich habe die Antwort aktualisiert – Xiao