Ich habe das gleiche Problem nur andersrum.
Ich lese aus einer MysQL Datenbank die Datensätze ( gespeichert in UTF-8 ) aus mit,
Dim res As String
res = Job.GetString
Bekomme von den Umlauten dann solche werte wie
Fl\u00c3\u00a4chentraining
Das soll dann Flächentraining heissen. Wie kann ich das in normale Umlaute umwandeln?
@Wolli013 Das ist Unicode. Soweit ich weiß gibt es in B4A keine elegante Methode den irgendwie zu konvertieren. Die Frage ist aber sowieso, warum du die Einträge in Unicode ausgibst? Vielleicht kannst du ja Teile deines PHP Code posten ...
Es läuft seit 2 Jahren als Web App und wurde so programiert weil es sonst immer probleme bei der Anzeige mit Umlauten gab und mit dem Unicode ging es dann aber ohne Probleme. Die Datenbank ist nicht mehr zu ändern und muss so bestehen bleiben.
Wenn ich es in der App anzeigen lasse wird es genauso wie es in der Datenbank gespeichert ist angezeigt.
Beispiel Eintrag in der Datenbank: Zugführer
Ausgabe in der App: Zugführer
Stehen soll aber Zugführer.
Genau das meine ich, und hier liegt irgendwo der Fehler:
Mit json_encode machst du folgendes
ä-->\u00c3\u00a4
Du änderst also die UTF8 Kodierung zu Unicode/JSON.
Gibst du nur Wörter aus, oder wirklich einen JSON String?
Mit deinem Code alleine ging es auch nicht, aber im Zusammenhang mit dem Code hier läuft es.
Danke für deine Hilfe.
B4X:
Sub Umlaute(p_strText As String) As String
Dim strTemp As String
strTemp = p_strText
strTemp=strTemp.Replace("ä","ä")
strTemp=strTemp.Replace("ö","ö")
strTemp=strTemp.Replace("ü","ü")
strTemp=strTemp.Replace("Ä","Ä")
strTemp=strTemp.Replace("Ö","Ö")
strTemp=strTemp.Replace("Ãœ","Ü")
strTemp=strTemp.Replace("ß","ß")
Return strTemp
End Sub
Sub Umlaute(p_strText As String) As String
Dim strTemp As String
strTemp = p_strText
strTemp=strTemp.Replace("ä","ä")
strTemp=strTemp.Replace("ö","ö")
strTemp=strTemp.Replace("ü","ü")
strTemp=strTemp.Replace("Ä","Ä")
strTemp=strTemp.Replace("Ö","Ö")
strTemp=strTemp.Replace("Ãœ","Ü")
strTemp=strTemp.Replace("ß","ß")
Return strTemp
End Sub
Sub JobDone(Job As HttpJob)
ProgressDialogHide
If Job.Success Then
Dim res As String
res = Job.GetString
res = Umlaute(res)
Log("Rückgabe vom Server: " & res)
Dim parser As JSONParser
parser.Initialize(res)