hola,
Su solución no es buena en general. ¿Por qué? Se trata de trabajar con las cartas con el código ASCII en 256 (convierte y se muestra bien) pero las cartas con el código ASCII de 256 que tengo "?" signos.
Así que tenemos que combinar estas dos soluciones en un
ejemplo:
PHP Code:
function vbet_encodeToSafeUTF8(&$string) {
$string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
$string);
//decode two byte unicode characters
$string = preg_replace('/([\304-\337])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
$string);
$string = utf8_decode($string);
return $string;
}
esta línea: definir que las cartas con el código ASCII en 256 no serán decodificados por mi función, pero sólo por Estoy probando still.I no estoy del todo seguro de que todo funciona correctamente ahora.
Puedes probarlo también!