ODBC et caractères spéciaux

configuration Apache, Zend et PHP , Web services
Répondre
little_noland
Messages : 14
Enregistré le : lun. 10 déc. 2012, 10:27:16

ODBC et caractères spéciaux

Message par little_noland »

Bonjour,

Nous utilisons le connecteur ODBC linux vers l'IBMI, pour des applications web en PHP avec un serveur web Aapche externe. Nous avons également des applications qui fonctionnent avec Zend et nous n'avons pas ce problème.

Avec le driver ODBC, nous avons des problèmes au moment de l'insert ou de l'update,

Un petit exemple tout simple, ma table a un champ de taille 30 en alpha, si on essaye d'insérer depuis le PHP "MON TEXTE QUI ARRIVE A LA FIN°", l'insert va planter car le degré va prendre deux places au lieu de une. (Le CCSID de la table est en 297)

Voici le paramétrage que nous utilisons pour se connecter en ODBC depuis PHP :

new PDO("odbc:DRIVER={IBM i Access ODBC Driver};System=IP_IBMI;PORT=50000;DATABASE=XXXXX;PROTOCOL=TCPIP;UID=USER;PWD=PASSWORD;CCSID=1208;DEBUG=524286;", "", "");


Quelqu'un a t'il déjà rencontrer le problème ?

Vous en remerciant.

Hurri
Messages : 38
Enregistré le : lun. 02 nov. 2020, 16:04:59

Re: ODBC et caractères spéciaux

Message par Hurri »

Bonjour,
A moins que je fasse une grosse erreur, tu as indiqué un CCSID 1208, soit de l'UTF-8.
Le caractère ° sera donc écrit sur 2 octets.

little_noland
Messages : 14
Enregistré le : lun. 10 déc. 2012, 10:27:16

Re: ODBC et caractères spéciaux

Message par little_noland »

Bonjour,
Merci pour votre réponse,
Il faudrait que je mette quoi comme CCSID pour que cela reste compatible avec l'UTF-8 en mode web ?

Merci

Hurri
Messages : 38
Enregistré le : lun. 02 nov. 2020, 16:04:59

Re: ODBC et caractères spéciaux

Message par Hurri »

Pour moi le CCSID par défaut est très bien, c'est le système qui fera la conversion.

L'idéal serait que les tables utilisent toutes l'UTF-8. Mais bon, on sait que ce n'est pas souvent possible.
Si en PHP on a des problèmes de conversion, il faut traiter les champs avec UTF8_encode et UTF8_decode.

little_noland
Messages : 14
Enregistré le : lun. 10 déc. 2012, 10:27:16

Re: ODBC et caractères spéciaux

Message par little_noland »

Bonjour,

Si cela peut aider quelqu'un,

nous avons réussi à résoudre le problème en mettant à jour les drivers ODBC avec la dernière version depuis le site IBM.

Nous sommes passés de la version ibm-access-1.1.0.14-1.0 vers ibm-iaccess-1.1.0.27-1.0.

Depuis, l'insertion, la modification avec les caractères spéciaux ne pose plus aucun problème.

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

Re: ODBC et caractères spéciaux

Message par nbonnet »

Merci pour l'info !
Nathanaël

Jpgovaert
Messages : 1
Enregistré le : sam. 03 juin 2023, 14:55:39

Re: ODBC et caractères spéciaux

Message par Jpgovaert »

Bonjour,
Je profite de ce message car je rencontre le même problème.
Pour information, vous avez gardé le ccsid 1208 en changeant uniquement la version du driver ?

Maxim
Messages : 1
Enregistré le : ven. 05 janv. 2024, 07:16:29

Re: ODBC et caractères spéciaux

Message par Maxim »

Bonjour,

Merci beaucoup pour ce retour d'expérience utile. La mise à jour des drivers ODBC à la dernière version semble être une solution efficace, surtout en passant de ibm-access-1.1.0.14-1.0 à ibm-iaccess-1.1.0.27-1.0, comme vous l'avez fait.

C'est un excellent rappel de l'importance de garder nos systèmes à jour pour éviter des problèmes techniques, particulièrement ceux liés à l'insertion et à la modification de caractères spéciaux. En outre, votre partage d'information améliore la visibilité de cette solution au sein de notre communauté comme ici, ce qui est très précieux. Souvent, des solutions comme celle-ci peuvent être méconnues ou sous-estimées, donc en parler ici permet à d'autres de bénéficier de votre expérience

little_noland
Messages : 14
Enregistré le : lun. 10 déc. 2012, 10:27:16

Re: ODBC et caractères spéciaux

Message par little_noland »

Jpgovaert a écrit :
sam. 25 nov. 2023, 12:53:29
Bonjour,
Je profite de ce message car je rencontre le même problème.
Pour information, vous avez gardé le ccsid 1208 en changeant uniquement la version du driver ?
Avec du retard, (je n'avais pas activé les notifications!)

Oui nous avons laissé le CCSID 1208.

Répondre