Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Convertir caracteres UTF-8 con PHP


Funciones PHP para convertir caracteres UTF-8 y que se vean bien los acentos y otras letras del alfabeto latino. Función decode UTF8 PHP.


24/9/08 - En ocasiones los textos de la página web pueden contener caracteres raros en lugar de acentos u otras letras propias del idioma español, como la ñ o las letras con diéresis y de otros idiomas latinos. Esto suele ocurrir en casos en que la base de datos trabaje en un juego de caracteres distinto que la página, o que los datos estén mal cargados en la misma. Generalmente estos errores surgen por un tratamiento inadecuado del juego de caracteres UTF-8, que no están procesados como UTF-8, sino como si fueran ISO-8859-1. Con PHP podemos decodificar esos caracteres para que a la hora de mostrar los textos en la página aparezcan correctamente. Para ello existen una funciones que vamos a comentar en este artículo de DesarrolloWeb.com.

Cuando vemos incorrectamente un texto nos pueden aparecer textos como estos:

Solución útil y apañada a UTF-8

Este texto tiene caracteres codificados en UTF8, que debemos decodificar para que aparezcan correctamente los acentos y demás símbolos del alfabeto latino.

Decodificar una cadena UTF-8 con PHP - decode utf8 php

Existe una función de PHP que realiza el trabajo de conversión de los caracteres UTF8 a sus correspondientes códigos reales.

La función se llama utf8_decode() y lo que hace es convertir una cadena que realmente utiliza ISO-8859-1 pero que tiene caracteres codificados a con UTF-8. La conversión genera el string en ISO-8859-1 pero con un sólo byte para todos los caracteres, con lo que se verán correctamente.

Se utiliza así:

utf8_decode("Solución útil y apañada a UTF-8");

Devolverá una cadena el texto correctamente escrito:

Solución útil y apañada a UTF-8

Codificar una cadena al juego de caracteres UTF-8 - encode utf8 php

Existe una función para hacer justo el paso contrario, que vamos a ver también en desarrollo web .com. Es decir, partiendo de una cadena en el juego de caracteres ISO-8859-1, obtener la correspondiente traducción a UTF-8.

Esto lo podemos necesitar, por ejemplo, si nuestra base de datos está definida con UTF-8 y tenemos entrada de datos ISO-8859-1.

El uso es bien simple:

echo utf8_encode("Mañanas de programación PHP");

Y devolverá el correspondiente string convertido a UTF-8, que si lo mostramos en una página que utiliza el juego de caracteres ISO-8859-1, se vería de esta manera:

Mañanas de programación PHP

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 3 comentarios (Añadir)

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en PHP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 3 comentarios revisados

 Comentario de Fernando
02/10/08 
EN JSP TAMBIEN HAY UNA FUNCION COMO LA DE PHP ?

 Comentario de Sergio
04/11/08 
Como hago para aplicar esta función a este fragmento del codigo que viene de tomar los datos de un formulario html:

-------------------------------------------------
Nombre: ".$_POST['nombre']."
Apellido: ".$_POST['apellido']."
Empresa / Institución: ".$_POST['empresa']."
Area y Cargo: ".$_POST['area']."
E-mail: ".$_POST['correo']."
Ciudad: ".$_POST['ciudad']."
País: ".$_POST['pais']."
Teléfono: ".$_POST['telefono']."
------------------------------------------------

Este fragmento lo que hace es tomar los datos de un formulario html y enviarlo por mail. Pero al mail me llegan todos los datos del formulario sin codificar y es muy dificil de leer.
Que puedo hacer?? como aplico esta función?
Desde ya muchas gracias.

 Comentario de Carlos Salas
14/11/08 
Para aplicarlo a un formulario de correo lo que se debe hacer es algo asi:

ejm:
$nombre=$_GET['Nombre'];
...
$msg .= " Nombre: ".utf8_decode($nombre);
...
en el caso anterior como ven, la funcion se aplica en la linea del mensaje. No directamente en la variable que está siendo rescatada del formulario...
en caso de usar campos adiconales fijos (por ejemplo):
$msg .= " N".utf8_decode(ú)."mero de ni".utf8_decode(ñ)."os: ".$niños;
---> en este caso la función se aplica a un texto específico que será enviado conjuntamente con el mensaje, seguido tambien de una variable que no hace uso de la función.

Lo detallaría más pero estoy algo ocupado... si requieren ayuda, pueden escribirme al correo, y cuando pueda; les contesto.

Suerte, espero que les sirva.

Añadir un comentario al artículo Añadir un comentario del artículo
  Ir arriba
Manuales relacionados
+Taller de PHP
Categorías
+PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia