-
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
-
Nur mit dem "š"? Mit dem "ć" nicht?
Was für Probleme denn eigentlich?
Ich würde das in ein UCS-2-Feld legen.
-
Hier hilft nur tatsächlich UCS-2 (CCSID 13488 in der DB, Feldtyp C), ansonsten erhältst du halt Schrott in den Daten.
-
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?
-
Ich weiß nicht, wie XML-INTO Zielfelder (DS) auswertet, sollte aber funktionieren, wenn deine DS-Felder mit "C" (UCS2) definiert sind.
-
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
-
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)!
-
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
-
Nur so eine Frage:
Das Text-Feld in der Datenstruktur rsp ist mit Datentyp C oder Datentyp A definiert?
-
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;
Similar Threads
-
By harbir in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 26-03-14, 13:13
-
By sim in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 14-11-13, 13:26
-
By NEWSolutions Redaktion in forum NEWSolutions artikel
Antworten: 0
Letzter Beitrag: 13-11-13, 03:57
-
By Andreas Herzfeldt in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 27-06-01, 16:22
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks