En nuestro sistema de control de producción (PHP+PostgreSQL) tenemos en ocasiones que presentar conjuntamente datos extraídos de distintos programas(Fastos, Versat) además del nuestro. Esto, además de obligarnos a trabajar simultáneamente con distintos tipos de bases de datos (PostgreSQL, MSSQL) nos añade la dificultad de presentar correctamente en pantalla distintos juegos de caracteres (charsets)…
Por ejemplo, nuestro sistema usa UTF-8, Fastos usa la codificación típica de Windows (Windows-1252), y el Versat se hace el interesante con CP850, heredado de MS-DOS. Presentar en pantalla simultáneamente datos extraídos de estos tres sistemas puede dar como resultado un potaje de caracteres raros.
La solución viene de la mano de una función (PHP):
$cadena_final=iconv(“codificación 1″,”codificación 2”,$cadena_original)
Puede usarse además con un parámetro adicional (TRANSLIT o PLAIN), como por ejemplo:
$cadena_final=iconv(“codificación 1″,”codificación 2//TRANSLIT”,$cadena_original)
que serviría si se desea transliterar un carácter especial.
Bendito PHP! Siempre tiene algún recurso…




