Unicode conversion

RPG (3 et 4, free), CL, SQL, etc...
Répondre
florian67
Messages : 128
Enregistré le : lun. 23 déc. 2013, 17:03:12

Unicode conversion

Message par florian67 »

Bonjour à tous,

J'ai un petit problème de conversion Unicode.

Nous avons remarqué que lorsque l'on enregistre une valeur unicode dans un fichier nous avons des caractères exotiques qui remplacent les blancs. Ce n'est pas forcément gênant pour les écrans, ça n’apparaît pas mais le problème c'est que ça s'affiche dans nos extractions de données, impressions...

J'ai remarqué en faisant un DSPPFM qu'il y avait des caractères x'4040' à la fin.

Je cherche à les supprimer mais en vain.... le scanrpl, trimr etc... n'acceptent pas les paramètres suivants :

Code : Tout sélectionner

ctn = %scanrpl(X'4040':X'0020':ctn)
ou encore

Code : Tout sélectionner

ctn = %trimr(ctn:x'4040')
Est-ce que quelqu'un aurait une idée de comment supprimer ces caractères?

Merci d'avance pour votre aide.
Florian[/quote]

cmasse
Site Admin
Messages : 764
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

%SCANRPL

Message par cmasse »

%SCANRPL(' ' : %UCS2(' '): ctn) ne fait pas le Boulot ?

sinon déclarer deux champs, l'un CHAR(2) , l'autre UCS2(1) et les utiliser dans %SCANRPL.

il y a-t-il un message d'erreur ? à la compil ou à l'exécution ?
Christian Massé (Volubis.fr)

florian67
Messages : 128
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

En fait à la compilation j'ai le message :
Le paramètre ' ' pour %SCANRPL n'est pas de même type et n'a pas le même CCSID que le paramètre CTN.

Pour info, ctn est déclaré comme suit :

Code : Tout sélectionner

ctn ucs2(67);  

monthi
Messages : 53
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

Message par monthi »

bonjour

c'est assez bizarre tes code X'4040'.
Tu devrais avoir soit X'0020' soit X'0000'

Comment aliment tu tes variables ?

Cdlt

florian67
Messages : 128
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Elles viennent d'un écran.

Dans l'écran la zone est déclarée comme suit :

Code : Tout sélectionner

A            NOMCO         30G  B  4 17CCSID(1200 *MIN)
Dans le fichier :

Code : Tout sélectionner

A            NOMCO         30G         CCSID(1200)  
Dans le programme je passe par une fonction interne.
Le paramètre est déclaré :

Code : Tout sélectionner

nom ucs2(30)
merci pour vos réponses

monthi
Messages : 53
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

Message par monthi »

Bonjour

la je n'ai pas d'idée car je n'utilise plus d'écran 5250 mais des écran web.


cdlt

Répondre