Problème de passage d'UTF-8 vers EBCDIC et réciproquement

IBM i, configuration, commandes, ...
Répondre
DanielGCA
Messages : 2
Enregistré le : mar. 07 mai 2024, 10:34:15

Problème de passage d'UTF-8 vers EBCDIC et réciproquement

Message par DanielGCA »

Bonjour,

J'ai les soucis suivants :
- Quand je veux créer un fichier dans l'IFS en mode UTF-8 par programme, je dois d'abord le créer dans un fichier temporaire en mode ASCII (1208 ou *PCASCII) puis le copier dans un fichier UTF-8, sinon le programme plante.
- Quand je veux exécuter un script sql en UTF-8, je dois d'abord l'ouvrir sous Notepad++ et copier son contenu dans ACS sinon les caractères accentués sont mal interprétés.

Est-ce qu'à votre avis il me manquerait quelque chose sur l'IBM i, ce qui m'empêcherait de passer de l'UTF-8 à l'EBCDIC et inversement sans passer par un intermédiaire ?

Merci d'avance pour vos idées et vos réponses,
Et bonne journée !

Daniel.

nbonnet
Messages : 222
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Problème de passage d'UTF-8 vers EBCDIC et réciproquement

Message par nbonnet »

Bonjour Daniel,

Bienvenu sur le forum !

Le CCSID 1208 est UTF-8 sur l'IBM i.
Pour la création d'un fichier IFS par programme, cela dépend comment le fichier est créé (la commande touch possède une option -C pour indiquer le ccsid par exemple, API système, autre ...). Si aucun CCSID ne peut être indiqué il y'a un CCSID par défaut (cf le répertoire, le protocole ...). Donc beaucoup de combinaisons qui produisent des résultats différents.

Pour l'exécution de script SQL avec ACS il n'y a pas de souci, il gère nativement le CCSID si le fichier est sur l'IBM i (fichier source ou IFS), et travaille en UTF-8 côté windows. S'il y'a des soucis, cela provient souvent d'un attribut de CCSID sur le fichier (côté IBM i donc) qui n'est pas correct par rapport au contenu du fichier. On retombe sur le premier point certainement.

Si vous avez du détail sur comment est créé le fichier ?
Nathanaël

DanielGCA
Messages : 2
Enregistré le : mar. 07 mai 2024, 10:34:15

Re: Problème de passage d'UTF-8 vers EBCDIC et réciproquement

Message par DanielGCA »

Bonjour Nathanaël,

et merci de vous pencher sur ce cas.

Effectivement petite erreur, j'aurai dû parler de 1252 et *PCASCII.

Pour le script SQL, il est créé par le bloc-notes sous windows 11.

Vous savez tout !

Merci encore,

Daniel.

nbonnet
Messages : 222
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Problème de passage d'UTF-8 vers EBCDIC et réciproquement

Message par nbonnet »

Pour le cas du script SQL, à priori voici le souci :
- le bloc note enregistre en UTF-8
- ACS attend un fichier UTF-8 avec BOM

Par exemple, dans un bloc note :

Code : Tout sélectionner

select * from sqlsample.employee ;
values ('azerty &é"(-èç@Ê€') ;
Ouverture du fichier dans ACS :

Code : Tout sélectionner

select * from sqlsample.employee ;
values ('azerty &é"(-èç@Ê€') ;
Si vous prenez un bloc-note plus évolué (style notepad++) et vous demandez l'enregistrement UTF-8 BOM, l'ouverture dans ACS fonctionne.
Dans le monde windows/linux, la notion de CCSID n'existe pas, ce n'est pas un attribut du fichier. Aussi chaque outil est libre d'enregistrer ou d'interpréter comme il le souhaite. Le BOM est un suite d'octets en début de fichier permettant d'indiquer l'encodage réel des données à suivre.

Wikipedia BOM : https://fr.wikipedia.org/wiki/Indicateu ... des_octets


Pour la première question du fichier créé par programme, je n'ai pas d'info pour vous en dire plus
Nathanaël

Répondre