Hola a tod@s,

os planteo un problema que tenemos con PHP y el ODBC del IBM i por si
alguien pudiera darons alguna pista.

Desde varios aplicativos desarrollados en PHP y ejecutándose sobre Linux se
accede al IBM i mediante ODBC extrayendo información con SELECTs. Todo
parece funcionar bien, hasta que en los datos CHAR o VARCHAR aparecen
símbolos como las Ñ, acentos o apóstrofos, etc.

El CCSID de las tablas consultadas es 1145 y, si no nos hemos equivocado,
en Linux está el LOCALE para utf-8.

Si hacemos las pruebas con isql desde Linux, no hay ningún problema, la
consulta se ejecuta. Si lo hacemos desde PHP no lo hace, pero tampoco
sabemos cómo averiguar qué error está dando.

Hemos contactado con IBM para asegurarnos que el controlador ODBC está
realizando la conversión de CCSID 1145 a CCSID 1208 (utf-8), y revisando
las distintas trazas nos confirman que sí.

Lo curioso es, que unas veces funciona sin ningún problema y otras no. Si
ejecutamos el PHP desde Windows y el ODBC de Windows, ¡nunca falla!

Lo estamos solucionando incluyendo en el SELECT un CAST explícito indicando
el CCSID 1208 y parece que funciona, pero no estamos muy seguros.

¿Tenéis alguna experiencia con este problema? ¿Qué solución le habéis dado?
¿Puede ser que nos falte algo por configurar en PHP de Linux?

Gracias a todos por vuestros comentarios.

Javier Mora
____________________________________________________
�nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.

Reply via email to