Codepagekonvertierung 4110 => 4103

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Codepagekonvertierung 4110 => 4103

Beitrag von Gast ( / / 0 / 3 ) »
Ich habe folgendes Problem:
Ich lese eine XML-Message aus und bekomme in der Payload einen Stream zurückgeliefert in einer Bytereihenfolge. Diesen Stream lege ich in ein Feld ab, das als XSTRING definiert ist.

Da ich diesen Stream durchsuchen möchte, muß ich diesen XSTRING nach STRING (Datentyp) konvertieren.

Dazu existiert die Klasse CL_XMS_PART_UTIL mit der Methode CONVERT_XSTRING_TO STRING. Diese nutze ich auch, nur bekomme ich bei einigen Konvertierungen folgende Fehlermeldung:
"Bei der Codekonvertierung für Charset UTF-8 (Codepage 4110) trat ein Fehler auf: Zeichensatzkonvertierung für ein oder mehrere zeichen nicht möglich".

Eine Konvertierung erfolgt nicht - das Empfangsfeld (Datentyp STRING) bleibt leer.

Wie kann ich eine Konvertierung von 4110 nach 4103 durchführen (das System auf dem ich entwickle, ist ein WAS / 6.2; als Codepage gibt das Systems 4103 aus).

Kennt jemand eine Möglichkeit diesen XSTRING nach STRING zu konvertieren (eventuell einen Funktionsbaustein?) bzw. welche Möglichkeiten existieren noch?


Bin für jeden Tipp dankbar.

Gruß
Tom

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Gast ( / / 0 / 3 ) »
Schau mal, ob es bei Dir die Klasse 'CL_ABAP_CONV_X2X_CE'. Damit lassen sich Konvertierungen in Abhängigkeit der Codepage durchführen. Außerdem finden sich in der Dokumentation zu dieser Klasse noch Verweise auf andere Konvertierungsklassen.

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Tom,

Betreff: Codepage-Umwandlung:
Vielleicht hilft dir ein einfacher:
TRANSLATE c ...FROM CODE PAGE g1 ...TO CODE PAGE g2

Betreff: Xstring-String-Umwandlung:
Ich habe keine Ahnung von XML etc, aber es würde mich noch interessieren, warum du deinen Xstring nicht einfach mit Move in einen String umwandelst.
Laut Doku sollte das funktionieren.
(Wir arbeiten noch auf 4.6 - die Klasse CL_XMS_PART_UTIL existiert bei uns nicht )

Wenn das alles nichts hilft, dann könntest du vielleicht deinen Suchstring in Xstring umwandeln und so suchen.

mfg dele

Beitrag von Gast ( / / 0 / 3 ) »
Hallo,
Danke für die Hinweise, aber:
Bei der Anweisung TRANSLATE sind die Zusätze FROM CODEPAGE und FROM NUMBER FORMAT in Unicode-Programmen verboten...
und der einfache Move bewirkt keinerlei Konvertierung bei XSTRING to STRING (der Stream
bleibt binär). Das Suchen mit XSTRING (Binäre Suche) habe ich auch schon probiert, allerdings
wird der Suchstring so nicht gefunden.

Die Klasse 'CL_ABAP_CONV_X2X_CE' hatte ich auch schon am Wickel.
Ich habe jetzt eine andere Methode zur Lieferung des String's genommen:
STRING_XDATA = L_RESOURCE->GETBINARYDATA( ).
anstatt:
STRING_XDATA = L_RESOURCE->GETBLOBDATA( ).
Damit funktioniert's, d.h. ich bekomme KEINEN Fehler bei der String-Konvertierung!

Danke an alle für die Hinweise.

Gruß
Tom

Seite 1 von 1

Vergleichbare Themen

5
Antw.
7692
Views
Umwandeln string <-> xstring OHNE Codepagekonvertierung
von a-dead-trousers » 17.07.2018 15:25 • Verfasst in ABAP® Core

Über diesen Beitrag

Anonymous
Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.