Convertir caracteres utf8 a iso-88591 y viceversa en PHP
Algunos de mis scripts utilizan codificaciones diferentes, y cuando intento combinarlos, esto se ha convertido en un problema.
Pero no puedo cambiar la codificación que usan, sino que quiero cambiar la codificación del resultado del script A, y usarlo como parámetro en el script B.
Entonces: ¿hay alguna forma sencilla de cambiar una cadena de UTF-8 a ISO-88591 en PHP? He mirado utf_encode y _decode, pero no hacen lo que quiero. ¿Por qué no existe ninguna función "utf2iso()"o similar?
No creo que tenga caracteres que no puedan escribirse en formato ISO, así que no debería ser un gran problema.
43
3
Echa un vistazo a
iconv()
omb_convert_encoding()
. Por cierto: ¿por qué no te funcionanutf8_encode()
yutf8_decode()
?Así que esencialmente
todos deberían hacer lo mismo - con
utf8_en/decode()
no requiriendo ninguna extensión especial,mb_convert_encoding()
requiriendo ext/mbstring yiconv()
requiriendo ext/iconv.En primer lugar, no utilices diferentes codificaciones. Es un lío, y UTF-8 es definitivamente la que deberías usar en todas partes.
Lo más probable es que tu entrada no sea ISO-8859-1, sino otra cosa (ISO-8859-15, Windows-1252). Para convertir desde esos, usa iconv o
mb_convert_encoding
.No obstante,
utf8_encode
yutf8_decode
deberían funcionar para ISO-8859-1. Estaría bien que publicaras un enlace a un archivo o una uuencoded o base64 cadena de ejemplo para la que la conversión falle o dé resultados inesperados.Debe utilizar el paquete iconv, concretamente su función iconv.