JSON - Webservice Umlaute

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
shim
Beiträge: 65
Registriert: 12.09.2004 23:09

JSON - Webservice Umlaute

Beitrag von shim »

Ich habe den Plan, aus diversen Webservices Werte an PB zu übergeben.
Alles funktioniert, bis auf die Umlaute, die aus der Unicode-Notierung nicht korrekt in das entsprechende Zeichen übertragen werden.

So sieht es aus:
Ein PHP-Script gibt mir den JSON-String zurück (input$). Da es sich um eine Version 5.3 handelt, steht leider der neue Parameter in JSON_ENCODE() "JSON_UNESCAPED_UNICODE" (erst ab PHP Version 5.4) mit dem dann auch die Umlaute in PB funktionieren.

leider habe ich auf dem System aber kein PHP 5.4 zur Verfügung und eigentlich müßte die PB-Interne JSON-Verwaltung doch auch mit Escapten-Unicode-Zeichen klarkommen.

Zum Beispiel:
Alles was im input$ steht, wird vom Webservice geliefert. Wie gesagt: PHP 5.3! Nimmt PHP diesen String entgegen wird durch JSON_Decode() wieder ein "ü" hergestellt. PB macht das jedoch nicht.

Ist das nun ein Bug, ein "Feature" oder hab ich etwas übersehen oder vergessen?


Hier ist ein Beispiel:

Code: Alles auswählen

  Input$ = "[{'id':'60542','vorname':'Monika','nachname':'Berns','str':'G\u00fcrsterkamp 1','plz':'12345','ort':'Mustermannshausen','mail':'Berns7@t-online.de','telefon':'','notiz':''}]"
  
  Structure _l
    id.s
    vorname.s
    nachname.s
    str.s
    plz.s
    ort.s
    mail.s
    tel.s
    notiz.s
  EndStructure
  
  NewList L._l()
  input$=ReplaceString(input$,"'",Chr(34))
  ParseJSON(0, Input$)
  ExtractJSONList(JSONValue(0), l())
  
  ForEach l()
    Debug  l()\id+" "+l()\nachname+" "+l()\str
  Next
  
  Debug "-----"
  Debug "Soll: Gürsterkamp"
Windows 8.1 Pro 64 Bit | PB 5.31 x86