Pb encodage d'un fichier sur l'ifs
Posté : mar. 23 févr. 2021, 10:27:50
Bonjour,
Mon but est de créer un fichier .TXT en ccsid 819 sur l'ifs. Le fichier est bien en CCSID 819 mais son contenu ne me convient pas. Voici le résultat obtenu : Des caractères 'bizarres' apparaissent. Quelles solutions pour les faire disparaître ?
Voici plusieurs exemples de code :
Exemple 1 correspondant au résultat
// ouverture du fichier sur l'ifs
mode = RW*OWNER + RW*GROUP + R;
fd = open (%trim(pathFile)
:O_TRUNC+O_CREAT+O_WRONLY+O_CODEPAGE
:mode
:819);
// fermeture du fichier sur l'ifs
close(fd)
// Réouverture de ce même fichier en mode texte
fd = open (%trim(pathFile)
:O_WRONLY+O_TEXTDATA);
// Ecriture dans le fichier
endOfLine = x'0d25' ==> début et fin de paragraphe.
wrecord = endOfLine + %trimr(wTexteCorpsMail) + endOfLine;
writeline (fd: %addr(wrecord): %len(%trimr(wrecord)));
Exemple 2 : autre exemple ou le résultat n'était pas satisfaisant
// Ouverture du fichier
fd = open (%trim(pathFile)
:O_TRUNC+O_CREAT+O_WRONLY+O_CCSID
:S_IWUSR+S_IRUSR+S_IRGRP+S_IWGRP+S_IROTH+S_IWOTH
:819);
// Conversion du texte car le wTexteCorpsMail est une zone d'un fichier en CCSID 1208
wtexte1208= %trimr(wTexteCorpsMail);
convert(1208
:819
:wtexte1208
:wtexte819
);
// Ecriture dans le fichier
writeline (fd: %addr(wtexte819): %len(%trimr(wtexte819)));
Merci pour votre aide.
Mon but est de créer un fichier .TXT en ccsid 819 sur l'ifs. Le fichier est bien en CCSID 819 mais son contenu ne me convient pas. Voici le résultat obtenu : Des caractères 'bizarres' apparaissent. Quelles solutions pour les faire disparaître ?
Voici plusieurs exemples de code :
Exemple 1 correspondant au résultat
// ouverture du fichier sur l'ifs
mode = RW*OWNER + RW*GROUP + R;
fd = open (%trim(pathFile)
:O_TRUNC+O_CREAT+O_WRONLY+O_CODEPAGE
:mode
:819);
// fermeture du fichier sur l'ifs
close(fd)
// Réouverture de ce même fichier en mode texte
fd = open (%trim(pathFile)
:O_WRONLY+O_TEXTDATA);
// Ecriture dans le fichier
endOfLine = x'0d25' ==> début et fin de paragraphe.
wrecord = endOfLine + %trimr(wTexteCorpsMail) + endOfLine;
writeline (fd: %addr(wrecord): %len(%trimr(wrecord)));
Exemple 2 : autre exemple ou le résultat n'était pas satisfaisant
// Ouverture du fichier
fd = open (%trim(pathFile)
:O_TRUNC+O_CREAT+O_WRONLY+O_CCSID
:S_IWUSR+S_IRUSR+S_IRGRP+S_IWGRP+S_IROTH+S_IWOTH
:819);
// Conversion du texte car le wTexteCorpsMail est une zone d'un fichier en CCSID 1208
wtexte1208= %trimr(wTexteCorpsMail);
convert(1208
:819
:wtexte1208
:wtexte819
);
// Ecriture dans le fichier
writeline (fd: %addr(wtexte819): %len(%trimr(wtexte819)));
Merci pour votre aide.