Base AS400, UTF-8 et PHP
-
- Messages : 4
- Enregistré le : ven. 02 mars 2007, 10:01:30
Base AS400, UTF-8 et PHP
Bonjour,
Je souhaite sauvegarder dans un fichier AS400, des chaines de caractère au format UTF-8. Le but est d'afficher un site web traduit en français, polonais, grec, ... J'attaque la base avec PHP et ZendCore, l'AS400 est en version V5R4M0.
Dans mon fichier, la zone concernée est définie de la manière suivante :
A DTRLIB 100A COLHDG('LIBELLE TRADUCTION')
A CCSID(1208)
J'ai tenté les fonctions utf8_encode et utf8_decode de PHP, mais cela ne fonctionne pas. Cela ne fonctionne pas non plus sans ces fonctions. J'ai aussi essayé de laisser le fichier sans le CCSID à 1208, puis avec et sans les fonctions utf8 de PHP.
Je ne sais pas où est mon problème (côté AS400, PHP ou les deux). Pouvez vous éclairer ma lanterne ?
Merci.
Je souhaite sauvegarder dans un fichier AS400, des chaines de caractère au format UTF-8. Le but est d'afficher un site web traduit en français, polonais, grec, ... J'attaque la base avec PHP et ZendCore, l'AS400 est en version V5R4M0.
Dans mon fichier, la zone concernée est définie de la manière suivante :
A DTRLIB 100A COLHDG('LIBELLE TRADUCTION')
A CCSID(1208)
J'ai tenté les fonctions utf8_encode et utf8_decode de PHP, mais cela ne fonctionne pas. Cela ne fonctionne pas non plus sans ces fonctions. J'ai aussi essayé de laisser le fichier sans le CCSID à 1208, puis avec et sans les fonctions utf8 de PHP.
Je ne sais pas où est mon problème (côté AS400, PHP ou les deux). Pouvez vous éclairer ma lanterne ?
Merci.
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
utf8_encode()
La fonction utf8_encode convertit du ISO-8859-1 (alphabet occidental) en UTF8, cela suppose une saisie en Français par exemple. est-ce le cas ?
sinon il faut modifier Apache avec AddDefaultCharset , voir le tutoriel http://electron-libre.fassnet.net/utf8.php
je ferais qq test, dès que j'ai un peu de temps...
Christian
sinon il faut modifier Apache avec AddDefaultCharset , voir le tutoriel http://electron-libre.fassnet.net/utf8.php
je ferais qq test, dès que j'ai un peu de temps...
Christian
Christian Massé (Volubis.fr)
-
- Messages : 4
- Enregistré le : ven. 02 mars 2007, 10:01:30
(sans texte)
Les pages HTML ou PHP ont toutes l'entête qui va bien pour préciser l'utilisation d'UTF-8.
Dans ma saisie, je vais avoir principalement du Français, de l'Anglais et du Polonais.
Merci d'avance pour vos futurs tests.
Dans ma saisie, je vais avoir principalement du Français, de l'Anglais et du Polonais.
Merci d'avance pour vos futurs tests.
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
PHP et UTF-8
J'ai créé une base de test en UTF-8 que j'ai renseigné avec Web Access avec des données occidentales, du thaï, du chinois et du grec (copier/coller depuis le web, je ne parle ces différentes langues que sous la torture)
ensuite j'ai ajouté un entête dans ma page php
enfin j'ai modifié ma connexion ODBC avec l'attribut SQL_ATTR_UTF8 que je viens de trouver dans la doc.
les données occidentales sont clairement affichées, les autres non, hors sous Web Access (Java) je vois toutes les données correctement.
je continue de chercher.....
ensuite j'ai ajouté un entête dans ma page php
Code : Tout sélectionner
<?php
header('Content-Type: text/html; charset=utf-8');
?>
Code : Tout sélectionner
// connexion à l'AS/400
$link = odbc_connect("AS400", "", "");
odbc_setoption($link, 1, SQL_ATTR_UTF8, SQL_TRUE);
je continue de chercher.....
Christian Massé (Volubis.fr)
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
incident ouvert
J'ai ouvert un incident chez Zend, qui reproduit le prb.
du coup ça remonte au second niveau chez eux.
A suivre......
du coup ça remonte au second niveau chez eux.
A suivre......
Christian Massé (Volubis.fr)
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
PHP and UTF-8, réponse de Zend
mauvaise nouvelle, réponse de Zend :
je vais donc ouvrir un incident chez IBM.Hello Christian,
Have not managed to get the db2 or odbc extensions to present the data correctly, so at this stage you will need to open a PMR with IBM, as the extension owned by IBM.
Christian Massé (Volubis.fr)
-
- Messages : 4
- Enregistré le : ven. 02 mars 2007, 10:01:30
(sans texte)
Merci pour vos recherches et actions.
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
UTF-8
Je viens de refaire un test avec les derniers correctifs de la version 7.
Ca marche avec :
SetEnv="CCSID=1208" dans le fichier fastcgi.conf
(à la place de SetEnv="CCSID=819")
et une connexion réalisée comme ceci :
Si vous ne mettez pas profil et mot de passe, ça ne marche pas et vous recevrez
Ca marche avec :
SetEnv="CCSID=1208" dans le fichier fastcgi.conf
(à la place de SetEnv="CCSID=819")
et une connexion réalisée comme ceci :
Code : Tout sélectionner
$link = odbc_connect($_GET['rdb'], "unprofil", "motdepasse");
odbc_setoption($link, 1, SQL_ATTR_UTF8, 1);
suite à une modification effectuée par IBM sur les routines CLI et non encore intégrée par ZEND.AUTHORIZATION ERROR: REFER TO PTF 5761SS1 SI29733 FOR MORE INFORMATION.
Echec d'autorisation lors de tentative de connexion à base de données répartie. (SQ30082)
Christian Massé (Volubis.fr)
-
- Messages : 4
- Enregistré le : ven. 02 mars 2007, 10:01:30
(sans texte)
Entre temps, je suis passé en V7, je vais pouvoir refaire de nouveaux essais.
Merci pour vos recherches.
Merci pour vos recherches.