-
An den diversen Ebenen der CCSID.
Welche Hostcodepage hat deine Sitzung?
Welche CCSID hat dein Job?
Zwischen Sitzung und Job wird keine Codewandlung durchgeführt.
Mittels %char wird die Job-CCSID verwendet.
Dein Problem ist, dass das @-Zeichen in deinem Programm nicht passend zum Terminal verarbeitet wird.
Übrigens:
Die DSPF unterstützt auch G-Felder mit CCSID 13488!
Die Codewandlung zwischen UCS2 und Terminal erfolgt dann automatisch.
Unicode considerations for display files
Da UCS2-Felder doppelt lang sind, kann man die DSPF-Länge spezifisch anpassen:
CCSID keyword considerations for display files that use Unicode data
-
Hallo Fuerchau,
habe jetzt mal folgendes probiert:
1. G-Felder in DSPF mit CCSID 13488 eingefügt.
Code:
A WWTXT1 50G B 5 15CCSID(13488 25)
A 6 3'Text2 :'
2. Die komplette DB ist mit dem CCSID Keyword auf Recordebene auf 13488 gesetzt.
Code:
A CCSID(13488)
A R UTF16R
3. Jegliche Umsetzung (%CHAR %UCS2 ist aus dem RPG-Prpgramm entfernt.
Code:
C EVAL ATXT3 = WWTXT3
4. Eine Sitzung mit wie folgt definiert:
Code:
[5250]
ScreenSize=27x132
HostCodePage=1154-SC
Andere Sitzung wie folgt definiert:
Code:
[5250]
ScreenSize=27x132
HostCodePage=1141-G
Job ist immer wie folgt defineirt:
Code:
Sprachen-ID . . . . . . . . . . . . . . . . . . . : DEU
Landes- oder Regions-ID . . . . . . . . . . . . . : DE
ID des codierten Zeichensatzes (CCSID) . . . . . : 65535
Standard-ID des codierten Zeichensatzes . . . . . : 273
Das @-Zeichen wird mir auf beiden Sitzungen jetzt sauber angezeigt. Die Zeichen ÜÖÄ wird auf der Russ. Sitzung nur noch als Highlight angezeigt?
Irgendwie gerät mein UNICODE Weltbild gerade aus den Fugen
-
Das Problem hier ist nun mal leider Windows.
Eine Codepage in der 5250-Sitzung die nicht zur Codepage des Windows passt, kann nicht funktionieren.
Begründung:
Die 5250-Emulation arbeitet als Terminal im SBCS, also kein Unicode.
D.h., dass die Tastaturzeichen aus Windows-ANSI an die Emulation geht.
Diese nimmt jetzt die Hostcodepage und wandelt auf dieser Codepoint-Basis (Zeichenwert des ANSI-Zeichens) in EBCDIC um und sendet an die AS/400.
Die Terminal-Schicht bekommt also nun den EBCDIC-Wert, identifiziert durch die Hostcodepage, und wandelt dann in UCS2 um bevor das Programm den Inhalt bekommt.
Bei Nicht-UCS2-Feldern erfolgt nämlich keine Umwandlung.
Bei der Ausgabe wird dann von UCS2 in die EBCDIC-CCSID des Terminals umgewandelt.
Die 5250 wandelt nun von EBCDIC in die Windows-Codepage und zeigt dann mit der eingestellten Schrift an.
Also auch die Schrift der 5250 muss dann russisch können. Diese iststandardmäßig auch nicht installiert.
Das Problem also ist, dass der Translate von Windows-Codepage in die EBCDIC-CCSID hier fehlschlägt, umgekehrt natürlich genauso.
Zufällig ist wohl das @-Zeichen in den Codepages das selbe, deshalb funktionierts.
Um also die 5250-Russisch zu testen musst du in Windows eine zusätzliche Sprache (Systemsteuerung->Region und Sprache->register Tastaturen), nämlich russisch, installieren und beim Aufruf der 5250-Sitzung dann auf diese Sprache umschalten.
OK, in Windows wird natürlich auch alles russisch dargestellt, du suchst dir da also jemanden, der das beherrscht .
In Windowsanwendungen mit SBCS hat man genau die seleben Probleme (Beispiel MS-Query). Hier ruft man 2 Windows-API's auf (von MultiByte in Singlebyte bzw. umgekehrt), wobei dann eben Ersatzzeichen (MBCS->SBCS) genommen werden.
Auch die Funktion %CHAR(UCS-Feld) wandelt auf Basis der Job-CCSID um!
Steht die auf *HEX (wie dein Job jetzt) ist das auch nicht so klar, was die Funktion dann macht, könnte sein, dass er dann mal wieder 037 annimmt.
Nachtrag:
Auch PRTF's erlauben UCS2!
Wobei dann die CHRID (CRTPRTF/OVRPRTF) zum Erstellzeitpunkt des Spools für die korrekte Darstellung im Spool sorgt, eine spätere Anpassung geht nicht mehr.
Mit dem DDS-Schlüsselwort FONT kann man eine UCS2-fähige Schrift auswählen (muss auch installiert werden, OpenType/TrueType), dann klappts auch mit PDF's.
Ob Hosttransform das auch kann, konnte ich noch nicht ausprobieren.
-
Danke Fuerchau für die Ausführliche Problembeschreibung.
Warum kann nicht mal was einfach sein 
Dann werde ich mal versuchen auf HEX-Ebene zu Vergleichen und eventuell an der PC-Anwednung schrauben.
Aber auf jeden Fall Danke erstmal!
Similar Threads
-
By mhegel in forum NEWSboard Windows
Antworten: 3
Letzter Beitrag: 19-06-13, 16:28
-
By DEVJO in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 12-10-06, 18:28
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 17
Letzter Beitrag: 11-05-06, 14:57
-
By reraru in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 20-04-05, 13:07
-
By epsih2 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 29-11-04, 10:06
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