|
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
|