UTF-8 Codierung in Volley Requests

9

In meiner Android App lade ich Json-Daten mit einer Volley JsonArrayRequest . Die Daten wurden von mir selbst erstellt und ich habe sie mit Sublime mit UTF-8-Codierung gespeichert. Wenn ich die Response bekomme und meine ListView fülle, werden die Texte nicht richtig angezeigt (Umlaute). So sieht meine Anfrage aus:

%Vor%

Wenn ich genau dieselben Daten mit dieser Methode lade, werden alle Texte korrekt angezeigt:

%Vor%

Für mich scheint es also kein Problem mit der Codierung meiner JSON-Datei zu geben. Wie kann ich dieses Codierungsproblem in Volley beheben?

    
JensJensen 13.01.2015, 21:48
quelle

8 Antworten

22

Wenn Sie wissen, dass absolut alle Dateien, die Sie anfragen, im UTF-8-Format vorliegen, was Ihrer Meinung nach klingt, dann sollten Sie Ihre Volley-Anfrage zwingen, UTF-8-formatierte Zeichenfolgen zurückzugeben. Sie können dies erreichen, indem Sie die JSON-Standardanforderung ableiten. Etwas wie das:

%Vor%     
Matthew Pape 13.01.2015, 22:25
quelle
8

Ich habe das gleiche Problem wie dieses und ich löse es mit UTF-8-Zeichensatz.

%Vor%

Ich hoffe, das wird für Sie funktionieren

    
Muhammad Naeem Paracha 10.01.2016 09:39
quelle
5

donot verwenden Sie try {} catch im onResponse-Block, der ein Problem in meinem Code verursacht, anstatt dass Sie so etwas implementieren können.

%Vor%

und ich denke, dass Sie das gewünschte Ergebnis erhalten werden

%Vor%     
erluxman 03.02.2016 09:06
quelle
4

Dies ist wie ein Charme für mich gearbeitet ,, Ich habe nur eine statische Methode von @Muhammad Naeem die Antwort ,, Danke Muhammed ..

%Vor%     
Kurdish Programmer 19.03.2016 21:47
quelle
1

ein anderer Ansatz: Sie können Ihre gesamte Antwort mit dieser Codezeile codieren.

%Vor%

Ich habe ganze Antwort-String in UTF-8 codiert, wie ich weiß, Volley-Standard-Encodemethode ist ISO8859-1

    
Din Islam Milon 22.05.2016 04:19
quelle
1

Fügen Sie diese Codezeile innerhalb der Antwort von Volley hinzu:

%Vor%     
Osama Ibrahim 17.01.2018 07:52
quelle
0

Um im Server-Teil anzugeben, setze utf-8 im Inhaltstyp wie "text / html; charset = utf-8"

    
quelle
0

Ich hatte das gleiche Problem früher vor zwei Tagen und ich habe alles versucht, was meine Freunde gerade gesagt haben, und es ist das gleiche Problem und ich habe so viele Dinge versucht .. meine Datei ist in PHP geschrieben und mit Volley, um die Daten als Json zu bekommen, ich befolgte diese Schritte, um das Problem zu lösen ..

  1. Schreiben Sie diese Abfrage, bevor Sie die Abfrage in Ihrer Datenbank ausführen

    mysqli_query ($ this- & gt; Verbindung, "set_NAMES_utf8");

  2. benutze diesen Header in deiner Datei, wenn es php

    ist

    header ('Inhaltstyp: application / json; charset = utf-8');

  3. Während du den JSON nach PHP phonst, gibt es eine Lösung für dieses Problem Verwende diesen speziellen Charakter in json_encode($json,JSON_UNESCAPED_UNICODE)

    Ich hoffe, es hat geholfen

Abdulmohsen Alshalabi 13.08.2016 12:06
quelle