[AS/400-PHP] Problème d'encodage

Fermé
Bobmorane - 14 mars 2013 à 16:54
Bonjour,

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 ?

Merci d'avance,

Bobmorane