-
Sprachencodierung – Was soll ich um meine Äs zu bekommen?
Hallo!
Ich brauche eure Hilfe da ich ziemlich neu am AS400 bin und wirklich fast keine Erfahrung habe.
Wir haben bei uns ein AS400 mit CSSID 65535 und LANGID DEU (von System).
Ich will ein kleines ILE RPG Programm schreiben dass ein File ließ, die ÄÖÜ tauscht durch AOU um und speichert die Felder zurück. Diese Datei selbst hat CCSID 273.
Ich probiere mit der XLATE Funktion, aber es schient mein Programm kann die ÄÖÜ und ß nicht richtig zu erkennen. Ich probiere es auch mit %SCAN aber funktioniert auch nicht
Code:
C IF %SCAN('Ä':Z00011) > 0
C EVAL Z00011 = 'GEFUNDEN'
C ENDIF
Obwohl in diesem Feld gibt es sicher eine Ä, wird nie gefunden (Z00011 wird nie ‚GEFUNDEN’).
Ich habe mein Modul mit LANGID(DEU) kompiliert aber bringt nichts.
Was soll ich machen um diese Zeichen finden zu können?
Danke für ihre Hilfe.
Jaime
-
1. Prüfe die CCSID deiner Quelle
2. Prüfe die CCSID deiner Session
3. Prüfe die CCSID deines Jobs
Nur wenn alle 3 identisch sind, ist dein Ä auch ein Ä !!
Am einfachsten erfaßt du die Zeichen in eine Datei mit CCSID 273 und liest diese zur Laufzeit ein.
Noch einfacher, du schreibts kein Programm sondern nimmst einfach SQL:
update myfile set myfield = translate(myfield, 'ÄÖÜ', 'AOU')
-
Fuerchau,
Danke für deine rasche Antwort.
Mit SQL habe ich es schont gemact aber jetzt bin ich interessiert, wie könnte es auch mit ILE RPG lösen.
Wenn du sagts CCSID meiner Quelle, ist das die Quelle von RPG Programm und Datenbanken File oder nur die Quelle von Datenbanken File?
Danke nochmals
-
Ich meine die Quelle, in die du das Programm erfasst !
Das Zeichen, dass du am Bildschirm eingibst unterliegt an verschiedenen Stellen einer Codewandlung und entspricht ggf. nicht dem gewünschten Hex-Wert.
Auch wenn du ein "Ä" siehst, heißt das nicht, dass das auch der korrekte Code für das Ä in der DB ist.
Stelle also deine Sitzung auf 273 und ändere deinen Job auf CCSID(273).
Ändere ggf. deine Source-PF auf CCSID(273).
Das "Ä" und auch viele andere Zeichen gelten als "variante Zeichen". Eine Codewandlung erfolgt jedoch nur bei Daten.
Verwendest du also solche Zeichen im Programm, so gilt der Hexwert zur Compile-Zeit deines Programmes und kann daher (wie hier erfolgt) u.U. nicht mit deiner DB übereinstimmen.
Anmerkung:
In Programmen sollten grundsätzlich keine varianten Zeichen verwendet werden, da diese immer Probleme bedeuten.
Werden diese benötigt, so schreibe diese in eine PF mit CCSID passend zu deiner DB.
Du kannst diese Daten auch als Ladezeit-Tabelle definieren, so dass du die Werte nicht noch selbst lesen musst.
-
Danke Nochmals, Fuerchau.
Jetzt ist mir klar.
Aber was passiert dann wenn ich ein Programm (DEU) habe , der eine Procedure (ENU) mit Strigs als Parameter ruft? Dann sollten sie nicht richtig miteinander verstehen? So muss ich alle Source Files mit demselben CCSID haben?
Jaime
-
Nein, das ist nicht nötig, da ja Hexcodes übergeben werden.
Die Verwendung von varianten Zeichen ist ausschließlich zur Compile-Zeit problematisch.
Ist der Job in einer CCSID (die auch anders als die DB sein kann) wandelt die AS/400 automatisch beim Lesen in die Job-CCSID und beim Schreiben in die DB-CCSID.
Nur: Die CCSID 65535 ist die schlimmste überhaupt, da passiert nämlich nix !!!
Similar Threads
-
By cassandra in forum NEWSboard Drucker
Antworten: 4
Letzter Beitrag: 04-06-02, 11:35
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