Ich schicke mal den Code der php-Datei und den PB-Code mit. Der Knackpunkt müsste meiner Ansicht nach im PB-Code beim JSON-Parsing sein.
Denn:
- Die Umlaute werden korrekt angezeigt, wenn ich in der php-Datei keinen JSON-encode und damit auch kein JON-Parsing in PB durchführe. Das heißt also, dass mit meiner Datenbank und dem php-Script utf8-mäßig wohl alles in Ordnung ist.
- Außerdem kann ich den JSON-encoded String in anderen Anwendungen (genauer: in einer App erstellt mit Basic4Android) korrekt mit Umlauten Parsen. Also dürfte auch die JSON-Kodierung im php-Script okay sein. Irgendetwas muss ich also beim JSON-Parsing im PB-Code übersehen habe.
Code: Alles auswählen
<?php
header('Content-Type: application/json_encode; charset=utf-8');
include ("access.php");
$db = mysqli_connect($db_host,$db_username,$db_password,$db_name) or die('Angelo, es gab einen Fehler');
mysqli_query($db, "SET CHARACTER SET 'utf8'") ;
$abfrage = "SELECT personenname, lebensalter FROM PersonenTabelle WHERE id > 4";
$ergebnis = mysqli_query($db, $abfrage);
$row = mysqli_fetch_object($ergebnis);
if (!$row) {
exit('Fehler! Es konnte keine Person ausgewählt werden!' . mysqli_error());
}
$rows = array();
while($r = mysqli_fetch_assoc($ergebnis))
{
$rows[] = $r;
}
exit(json_encode($rows));
?>
Code: Alles auswählen
.......
Structure Treffer
personenname.s
lebensalter.s
EndStructure
Global NewList trefferliste.Treffer()
OpenWindow(#window, 0, 0, 600, 500, "Abfrage", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
url_string$ = "http://my_domain/abfrage.php"
GetFile = GetHTTP_CreateInterface()
GetFile\GetFileInMemory(url_string$, "", "", #INTERNET_FLAG_RESYNCHRONIZE, WindowID(#window), #WM_APP, #GETHTTP_MODE_ASYNC)
Repeat
Select WaitWindowEvent()
....
Case #WM_APP
wParam = EventwParam()
*Buffer = GetFile\GetResult(wParam)
If *Buffer
#json = 33
If CatchJSON(#JSON, *Buffer, MemorySize(*Buffer))
ExtractJSONList(JSONValue(#json), trefferliste())
Else
Debug JSONErrorMessage()
EndIf
EndIf
GetFile\FreeMem(wParam)
EndSelect
ForEver