Je suis actuellement en apprentissage en deuxième année de BTS SIO, et je souhaiterais présenter à l'examen une plate-forme intranet de gestion de tâche, développée en entreprise.
Le langage utilisé est PHP et la base de données DB2-400. Ne pouvant pas mobiliser l'AS/400 de la société, j'ai ouvert un compte sur un serveur public (allemand).
J'ai donc porté la solution sur mon poste perso et recréé la base de données sur l'AS/400 public. La connexion ODBC se fait correctement et le système fonctionne comme prévu, à l'exception de l'affichage des caractères spéciaux. En recherchant la cause de ce problème, j'ai remarqué que le CCSID des champs textes était 273, et l'ai donc modifié à 297. Ceci m'a permis, sur mon premier fichier, de récupérer mes textes au format utf-8.
En revanche, lorsque je veux réitérer l'opération sur les autres tables de mon projet, un problème demeure :
Lors d'un insert manuel sur l'émulateur 5250, les caractères spéciaux sont bien enregistrés en base directement, mais ne sont pas interprétés par PHP (affichage de "?")
Lors d'un insert par la plate-forme intranet, les caractères spéciaux sont directement mal interprétés (le "é" devient "{" par exemple dans l'émulateur, et PHP affiche "?").
Je n'avais pas de problème en entreprise, le CCSID était bien de 297 et je pouvais tout lire directement avec le charset iso-8859-1. Maintenant, le peu que j'arrive à récupérer est en utf-8.
Voici les définitions de mes fichiers
Le fichier qui fonctionne en UTF-8
Description des zones
Paramètres de la commande DSPFFD
Fichier . . . . . . . . . . . . . . . . . . : TAMGTYPT
Bibliothèque . . . . . . . . . . . . . . : HBORD1
Info fichier
Fichier . . . . . . . . . . . . . . . . . . : TAMGTYPT
Bibliothèque . . . . . . . . . . . . . . : HBORD1
Emplacement du fichier . . . . . . . . . . : *LCL
Description externe . . . . . . . . . . . . : Oui
Nombre de formats . . . . . . . . . . . . . : 1
Type de fichier . . . . . . . . . . . . . . : Physique
Type de fichier SQL . . . . . . . . . . . . : TABLE
Date de création du fichier . . . . . . . . : 03/13/13
Information format
Format d'enregistrement . . . . . . . . . . : TAMGTYPT
Identificateur niveau format. . . . . . . . : 2C1F358ABD4BB
Nombre de zones . . . . . . . . . . . . . : 2
Longueur d'enregistrement . . . . . . . . . : 29
Informations de niveau zone
Type Long Long Position Usage En-tête
Zone données zone tampon tampon zone colonne
CODTYPT BINAIR 9 0 4 1 E/S CODTYPT
LBLTYPT ALPHA 25 25 5 E/S LBLTYPT
ID codé de jeu de caractères . . . . . : 297
Et un qui ne fonctionne pas
Description des zones
Paramètres de la commande DSPFFD
Fichier . . . . . . . . . . . . . . . . . . : TAMGSTAT
Bibliothèque . . . . . . . . . . . . . . : HBORD1
Info fichier
Fichier . . . . . . . . . . . . . . . . . . : TAMGSTAT
Bibliothèque . . . . . . . . . . . . . . : HBORD1
Emplacement du fichier . . . . . . . . . . : *LCL
Description externe . . . . . . . . . . . . : Oui
Nombre de formats . . . . . . . . . . . . . : 1
Type de fichier . . . . . . . . . . . . . . : Physique
Type de fichier SQL . . . . . . . . . . . . : TABLE
Date de création du fichier . . . . . . . . : 03/14/13
Information format
Format d'enregistrement . . . . . . . . . . : TAMGSTAT
Identificateur niveau format. . . . . . . . : 2AB6A79012E7A
Nombre de zones . . . . . . . . . . . . . : 2
Longueur d'enregistrement . . . . . . . . . : 29
Informations de niveau zone
Type Long Long Position Usage En-tête
Zone données zone tampon tampon zone colonne
CODSTS BINAIR 9 0 4 1 E/S CODSTS
LBLSTS ALPHA 25 25 5 E/S LBLSTS
ID codé de jeu de caractères . . . . . : 297
Auriez-vous une idée pour que je puisse à nouveau traiter mes données en ISO-8859-1 ? Ou à défaut en UTF-8 ?