METAMORFOSIS CARACTERIOLÓGICA UTF-ISO

 

A veces podemos sentir la imperiosa necesidad de jugar con la codificación de caracteres, cierto, pero en la mayoría de las ocasiones, y si se es programador más si cabe, nos veremos impelidos a actuar so pena de abroncamiento o melancolía.

Dicho lo cual, ¿cuál es el verdadero problema? Fácil. Todo va estupendamente pero, ay, ese dichoso combo nos muestra (reacio a nuestras indicaciones) una serie de nombres con signos muy raros que hacen peligrar la elegancia de lo que el usuario esté visualizando en ese preciso instante.

Fuera barroquismos y vayamos al barro del asunto.

 

PHP, el lenguaje de script más potente del mercado, nos facilita dos funciones que podremos adaptar perfectamente a nuestras necesidades. Tan sencillo como lo siguiente.

 

 

1) FUNCIÓN BASE

 

Nos detecta si estamos en presencia de un críptico UTF-8

 

function is_utf8($string) {
      return preg_match(´%^(?:
                [x09x0Ax0Dx20-x7E]              # ASCII
                | [xC2-xDF][x80-xBF]             # non-overlong 2-byte
                |  xE0[xA0-xBF][x80-xBF]        # excluding overlongs
                | [xE1-xECxEExEF][x80-xBF]{2}  # straight 3-byte
                |  xED[x80-x9F][x80-xBF]        # excluding surrogates
                |  xF0[x90-xBF][x80-xBF]{2}     # planes 1-3
                | [xF1-xF3][x80-xBF]{3}          # planes 4-15
                |  xF4[x80-x8F][x80-xBF]{2}     # plane 16
                )*$%xs´,
                $string);
  }   

 

 

2) FUNCIÓN DE UTF A ISO

 

Esta pulcra función genera el string en ISO-8859-1, operando la transubstanciación de una cadena que realmente utiliza ISO pero que contiene caracteres codificados con UTF.

La función PHP es (el señor cantó línea) -> [utf8_decode ($string)]

  // FUNCIÓN DE UTF8 A ISO
  function UTF8toISO($string){
       if(!is_utf8($string)){
            return $string;
       }else{
            return utf8_decode($string);
       }  
  }

 

3) FUNCIÓN DE ISO A UTF

 

Al revés o viceversa.

La función PHP es (pero la señora bingo) -> [utf8_encode ($string)]

 

  // FUNCIÓN DE ISO A UTF8
  function ISOtoUTF8($string){
        if(is_utf8($string)){
            return $string;
       }else{
            return utf8_encode($string);
       }  
  }

Y lo mejor de todo es que funciona. De nada.

 

Autor: Adrián Martínez Buleo

)( parentesys.es )( La cultura al alcance de todos )

CONVERTIR CARACTERES UTF-8 EN PHP
Fecha de publicación: 2010-02-08 02:02:16, por Adrián Martínez Buleo   (visto: 5501 veces)   (a 10 personas les ha parecido interesante)
Fuente:

Fotos de este contenido: si quieres añadir fotos, pulsa el botón Fotos

    
    


© parentesys.es - Todos los Derechos Reservados

CONVERTIR CARACTERES UTF-8 EN PHP

Comparte este contenido con todos tus amigos.



 Portada  :: Sección Informática

   Informática en Google  :: Buscador de Informática      Creación de páginas web de Informática

Opiniones sobre el artículo

Las opiniones que aquí se escriban deben hacer un uso cívico y respetuoso de la libertad de expresión. El administrador de parentesys.es se reserva el derecho de eliminar aquellos comentarios que no lo cumplan, o que no aporten información útil sobre el contenido arriba publicado.


Oscar
Corrección de la función que detecta si la cadena es UTF8 publicada el (05/03/2010 17:03:51)

Atención, sin esta pequeña corrección , la función no se comporta adecuadamente... Hay que cambiar las comillas que aparecen en cursiva , por comillas verticales (las que aparecen debajo del signo ? en nuestro teclado) Saludos

Raúl Hernández Caballero
problemas con el charset publicada el (09/02/2010 00:02:10)

Las problemas con las diferentes codificaciones y mala visualización de los juegos de carateres es algo con lo que más de una vez nos hemos encontrado todos.
Complementando a este artículo os propongo ehcar un vistazo a este otro : UTF-8 o ISO-8859-1problemas con el charset en PHP

Escribe tu comentario

Tu nombre: [obligatorio]

Título: [obligatorio]

Tu sitio web: (escríbelo con http://) [opcional]

Tu email: (lo mantendremos privado) [obligatorio]

Contenido: [obligatorio]

Código de seguridad anti-spam:*