[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2014
    Beiträge
    179

    Kroatischer Zeichensatz auf IBM i über Google Maps API Webservice

    Hallo IBM i Forum,

    ich benutze, um für eine Stadt die zugehörige Administrationseinheit zu finden, den Google Maps API Webservice, den ich mit meiner 720 V7R2 per Programm anspreche. Der Request sieht so aus - Baska eine Stadt in Kroatien:

    https://maps.googleapis.com/maps/api...e&sensor=false

    Das Ergebnis schreibe ich in das IFS mit der CCSID 1208 UTF-8 und erhalte folgendes Ergebnis als XML-File:

    <?xml version="1.0" encoding="UTF-8"?>
    <GeocodeResponse>
    <status>OK</status>
    <result>
    <type>locality</type>
    <type>political</type>
    <formatted_address>Baška, Kroatien</formatted_address>
    <address_component>
    <long_name>Baška</long_name>
    <short_name>Baška</short_name>
    <type>locality</type>
    <type>political</type>
    </address_component>
    <address_component>
    <long_name>Općina Baška</long_name>
    <short_name>Općina Baška</short_name>
    <type>administrative_area_level_2</type>
    <type>political</type>
    </address_component>

    Jetzt möchte ich die Daten aus dem IFS mit xml-into parsen und in die Datenbank schreiben, das geht alles wunderbar. Aber es gibt Probleme mit dem Sonderzeichen "š".

    Hat jemand einen Tipp für mich?

    Meine Maschine ist auf CCSID 1141 - Deutscher Zeichensatz - in den Systemwerten eingestellt

    Herzlichen Dank für die Antworten

    Herzliche Grüße
    Rainer Ross
    www.myhofi.com
    schnelle und komfortable Hotelsuchmaschine mit Volltextsuche – powered by IBM i

  2. #2
    Registriert seit
    Oct 2013
    Beiträge
    171
    Nur mit dem "š"? Mit dem "ć" nicht?
    Was für Probleme denn eigentlich?
    Ich würde das in ein UCS-2-Feld legen.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Hier hilft nur tatsächlich UCS-2 (CCSID 13488 in der DB, Feldtyp C), ansonsten erhältst du halt Schrott in den Daten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Aug 2014
    Beiträge
    179
    Herzlichen Dank, ich probiere es aus. Muss ich im RPG-Header hier auch noch UCS-2 einfügen oder reicht es aus, die CCSID 13488 im Datenbankfeld zu definieren?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich weiß nicht, wie XML-INTO Zielfelder (DS) auswertet, sollte aber funktionieren, wenn deine DS-Felder mit "C" (UCS2) definiert sind.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo Fuerchau,

    ich habe deinen Tipp wie folgt umgesetzt. Es geht um die Darstellung der Stadt Baška.

    1. Eine Datei erstellt mit dem Feldtyp "G" und CCSID 13488

    CITY 40G TEXT('CITY')
    CCSID(13488)

    2. Im Programm ein Feld mit 40C definiert, in das die Daten mit xml-into geparst werden

    D long_name 40c

    3. Das Ergebnis in der Datei sieht so aus. Die Unterstriche sind nicht darstellbare Zeichen. Ich habe sie nur eingefügt, da die Zeichen sonst verschoben sind.

    *...+....1....+....2
    _â_ /__ ,_ /
    04060106060202020202
    02010A0B010000000000

    Hex 0042 = "B"
    Hex 0061 = "a"
    Hex 001A = ?
    Hex 006B = "k"
    Hex 0061 = "a"
    Hex 0020 = Blank

    lt. UTF-8 Zeichensatz müsste "š" Hex C5A1 sein, aber in der Datei steht Hex 001A. Hast du noch eine Idee?

    Herzlichen Dank
    Rainer

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    X'1A' ist ein Ersatzzeichen bei der Codewandlung von UTF-8 nach SBCS (z.B. 273).
    Dies zeigt, dass XML-INTO intern ein normales Zeichenfeld verwendet und das Ergebnis dann nach UCS2 konvertiert. Daher halt auch der Zeichenverlust.

    Beachte, ob die IFS-Datei wirklich CCSID 1208 hat, wenn nicht, wird die IFS-Datei erst noch von der Datei-CCSID in die gewünschte CCSID umkopiert, was wiederum zu Verlusten führen kann (Siehe Handbuch).

    Um UCS2 zu erhalten muss in der Option des XML-INTO CCSID=UCS2 angegeben werden da sonst immer erst in die Job-CCSID gewandelt wird (siehe Handbuch)!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo Fuerchau,

    wahrscheinlich sind wir nur noch einen Mausklick von der Lösung entfernt.

    - Die CCSID der IFS-Datei habe ich geprüft, sie ist 1208

    anbei der Inhalt als Hexcode: š ist korrekt als x'C5A1' in der Datei dargestellt

    20203C61 64647265 73735F63 6F6D706F 6E656E74 <address_component
    2020203C 6C6F6E67 5F6E616D 653E4261 C5A16B61 <long_name>Ba ka<
    2020203C 73686F72 745F6E61 6D653E42 61C5A16B <short_name>Ba ka
    2020203C 74797065 3E6C6F63 616C6974 793C2F74 <type>locality</t
    2020203C 74797065 3E706F6C 69746963 616C3C2F <type>political</

    - der XML-into enthält folgende Optionen:

    d#opt = 'doc=file +
    ccsid=ucs2 +
    path=geocoderesponse +
    countprefix=cnt_ +
    case=any allowextra=yes +
    allowmissing=yes'; // XML-Options

    xml-into rsp %xml(%trim(d#stmf):%trim(d#opt));

    Somit sollte alles korrekt sein, aber in der Datei erscheint trotzdem noch x'1A', irgendwo geht da etwas verloren.

    Herzlichen Dank Fuerchau

    Herzliche Grüße
    Rainer Ross
    www.myhofi.com
    schnelle und komfortable Hotelsuchmaschine mit Volltextsuche – powered by IBM i

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Nur so eine Frage:
    Das Text-Feld in der Datenstruktur rsp ist mit Datentyp C oder Datentyp A definiert?
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo Birgitta,

    das Text-Feld ist wie folgt definiert:

    dcl-ds address_component qualified;
    type char(30) dim(2);
    long_name ucs2(60);
    short_name ucs2(60);
    end-ds;

  11. #11
    Registriert seit
    Aug 2014
    Beiträge
    179

    Problem mit kroatischem Zeichensatz

    Herzlichen Dank,

    das Problem ist gelöst, ich hatte noch ein Zwischenfeld im Programm, das als Char definiert war und nicht als UCS2-Feld.

    Anbei das Programmlisting im neuen all-free RPG

    Herzliche Grüße
    Rainer Ross
    www.myhofi.com
    schnelle und komfortable Hotelsuchmaschine mit Volltextsuche – powered by IBM i
    Angehängte Dateien Angehängte Dateien

Similar Threads

  1. WebService über HTTPS
    By harbir in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 26-03-14, 13:13
  2. Antworten: 1
    Letzter Beitrag: 14-11-13, 13:26
  3. Artikel: Von 5250-Oberfläche variabel in Google Maps positionieren:
    By NEWSolutions Redaktion in forum NEWSolutions artikel
    Antworten: 0
    Letzter Beitrag: 13-11-13, 03:57
  4. Drucken mit polnischen Zeichensatz
    By Andreas Herzfeldt in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 27-06-01, 16:22
  5. Zeichensatz anzeigen
    By Burgy Zapp in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 03-04-01, 19:07

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •