FTP et conversion caractèes

IBM i, configuration, commandes, ...
Répondre
PGG57
Messages : 33
Enregistré le : jeu. 11 févr. 2010, 10:42:59
Localisation : Nancy

FTP et conversion caractèes

Message par PGG57 »

Je récupère des fichiers ASCII d'un autre site en FTP directement dans l'IFS de mon iSeries. Je rencontre des problèmes de conversion de caractères accentués.

exemple:
Tarif semaine dès 4 jours
devient
Tarif semaine dès 4 jours


PS: Le CCSID du fichier dans l'IFS est 819.

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

CCSID et fichiers stream

Message par cmasse »

Comment le fichier est-il "arrivé" sur IBM ? directement via FTP ou existait-il avant ?

d'où viens-t-il ? quelle plateforme ? (812 indique de l'ASCII Unix) , s'il vient du monde Windows il faudrait 1252 (Ansi et non Ascii)

la commande CHGATR ATR(*CCSID) VALUE(1252) permet de modifier le CCSID sans modifier le contenu, est-ce mieux ?
Christian Massé (Volubis.fr)

PGG57
Messages : 33
Enregistré le : jeu. 11 févr. 2010, 10:42:59
Localisation : Nancy

(sans texte)

Message par PGG57 »

Le fichier "arrive" par un FTP lancé par un CLP de l'iseries.

Les fichiers sont des .txt générés par la machine distante dont je ne connais pas le type. Il s'agit donc toujours de nouveaux fichiers mis dansl'IFS.

J'ai essayé le CHGATR comme vous m'avez indiqué mais cela n'a rien changé, lorsque je fais le CPYFRMSTMF dans un fichier PF j'ai toujours les caractères "bizarres". Le CCSID du fichier PF est 65535

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

CCSID 65535

Message par cmasse »

le CCSID 65535 veut dire "je ne connais pas mon code page, ignore !"

pouvez vous forcer le code page du paramètre TOCCSID à 297 ?
Christian Massé (Volubis.fr)

PGG57
Messages : 33
Enregistré le : jeu. 11 févr. 2010, 10:42:59
Localisation : Nancy

(sans texte)

Message par PGG57 »

Le fichier PF dans lequel je copie le .txt est créé avec CRTPF sans DDS, juste avec une longueur. Dans la commande CRTPF, on ne peut pas forcer le CCSID. Si je fais un CHGJOB pour changer le CCSID, le CRTPF donne toujours un CCSID de 65535.

J'ai créé un fichier à partir de DDS en CCSID 297 et j'ai remplacé la commande CPYFRMSTMF en CPYFRMIMPF en forçant le TOCCSID à 297, cela a le même effet.

De toute manière, le fichier dans l'IFS a déjà les caractères "bizarres", il faut peut-être changer de CCSID au moment de chargement dans l'IFS par le FTP?

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

cccsid fichier stream

Message par cmasse »

SI le fichier contient des caractères bizarres c'est probablement que le code page des données ne correspond pas au code page "déclaré.

si vous faites un transfert FTP binaire, est-il lisible ou corrompu sous Windows ?

pouvez vous me le transmettre pour que je regarde le code page réel ?
(cmasse at volubis.fr)
Christian Massé (Volubis.fr)

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

caractères invalides

Message par cmasse »

C'est vraiment lors du transfert FTP que le problème a lieu.

lorsque je transfert votre fichier sur MON serveur (QCCSID à 297) je retrouve correctement les caractères accentués.

soit vous changer QCCSID de 65535 à 297 (mais attention aux transferts existants)

soit vous modifiez les paramètres du serveur FTP

http://www-912.ibm.com/s_dir/slkbase.NS ... cc0080d66a
Christian Massé (Volubis.fr)

PGG57
Messages : 33
Enregistré le : jeu. 11 févr. 2010, 10:42:59
Localisation : Nancy

(sans texte)

Message par PGG57 »

C'est l'iSeries qui lance la recherche des fichiers et le chargement dans l'IFS de ceux-ci.

Dans le script FTP, je ne peux pas mettre QUOTE SITE TYPE ... cela n'est pas autorisé, l'iSeries étant client et non pas serveur.

J'ai essayé de modifier le CCSID lors du lancement de la commande STRTCPFTP , j'y ai mis 1252, le fichier a été chargé toujours avec des caractères bizarres. Cette commande n'admet pas le CCSID 00297, on obtient le message TCP4993. Quel est le CCSID que je dois mettre pour récupérer les fichiers dans l'IFS ?

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

CCSID FTP client

Message par cmasse »

ben ....

le même CCSID que sur le serveur, sur quel OS tourne-t-il ? quel est le paramétarge ?

si c'est un serveur UNIX il faut mieux indiquer CCSID(819) sur la commande STRTCPFTP.

par prudence ou peut ajouter ASCII dans le script afin d'éviter un transfert binaire.
Christian Massé (Volubis.fr)

Répondre