Page 1 sur 1

Unicode conversion

Posté : mer. 31 oct. 2018, 15:24:02
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]

%SCANRPL

Posté : mer. 31 oct. 2018, 15:50:03
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 ?

Posté : mer. 31 oct. 2018, 15:56:58
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);  

Posté : mer. 31 oct. 2018, 15:57:56
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

Posté : mer. 31 oct. 2018, 16:03:32
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

Posté : mer. 31 oct. 2018, 16:07:46
par monthi
Bonjour

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


cdlt