Cómo solucionar el problema de ñ y acentos en PHP

Un problema que se nos suele presentar a muchos webmasters cuando programamos en PHP está relacionado con los problemas al mostrar caracteres latinos como la ñ y las letras con acentos.

En muchas ocasiones nos ocurre que al realizar una llamada a los datos procesados interfiere algún tipo de limpiador anti-injecciones de código, que nos genera un cambio en la estructura del texto en un formato diferente al de UTF-8 que es el utilizado para que todos los símbolos y caracteres latinos utilizados sean reconocidos correctamente.

El primer paso para solucionar estos problemas con caracteres latinos es colocar una llamada al inicio con <meta chartset=”utf-8″ /> y verificar que nuestra base de datos tenga la misma configuración. Con esto descartamos que el problema sea de tipo de lectura a nuestro documento.

La causa de estos problemas de caracteres suele estar en la siguiente función, que realiza un ajuste completo de la string y convierte el texto en entidad independiente de HTML. Al realizar este proceso, se convierte a un estilo por defecto que no incluye ñ y acentos. Muy común en sitios que utilizan un CMS (sistema de gestión de contenidos) que llaman datos procesados con esta función:

function limpiarString($string) //función para limpiar strings
   {
      $string = strip_tags($string);
      $string = htmlentities($string);
      return stripslashes($string);
// al ejecutar en mySQL agregar al final mysql_real_escape_string($string);
   }

Por eso si utilizas un CMS es muy probable que tenga la anterior función de limpieza de código, no olvides añadir el siguiente código a la función htmlentities()

$string = htmlentities($string, ENT_QUOTES,'UTF-8');

La explicación del código anterior es que ENT_QUOTES es una propiedad que tiene la función que convierte las comillas ( ” ) y la comilla simple  ( ‘ ). Y el ‘UTF-8′ especifica a la función que el tipo de conjunto de caracteres (charset) que queremos usar es el UTF-8, el cual contiene los caracteres latinos como la ñ y las letras con acentos.

Tags: , ,

Un Comentario a “Cómo solucionar el problema de ñ y acentos en PHP”

  1. Anusraper dice:

    Excelente aporte! por fin di con el que era gracias hermano

Deja un Comentario