Error en el algoritmo de detección de UTF-8.... ¿cúal será?
Enviado por clbustos el Mié, 28/12/2005 - 01:38.
Clasificado en:
En mi serie de "Detectando UTF-8 en...", aparte de faltarme Perl y Python, existe un error potencial, que permitiría que textos UTF-8 mal formados fueran reconocidos como adecuados. ¿A donde estará el problema?. Se los dejo como ejercicio :)
Les recomiendo revisar el código en Ruby, porque es el más sencillo de leer.
Ah, y gracias Rino, por acordarme de poner la fuente de los códigos en monoespaciado. Hacía falta :P
- 3335 lecturas

Hola claudio tanto tiempo!!!!
"existe un error potencial, que permitiría que textos UTF-8 mal formados fueran reconocidos como adecuados."
¿Podría ser esto?: Asumiendo que el archivo PHP ha sido guardado como UTF-8, (en el ejemplo de PHP obviamente) para definir $C haces lo siguiente:
$b = "ISO-8859-1: áéíóú";
$c = utf8_encode($b);
Como el archivo PHP ya estaba como UTF-8, el script detecta correctamente a $B como UTF-8, hasta ahí vamos OK. Luego para definir $C vuelves a codificar a $B como UTF-8 (con utf8_encode). El script lo detecta como UTF-8, pero lo imprime con caracteres raros. ¿Será ese el UTF-8 mal formado al que te refieres? ¿o SÍ debía imprimirse con caracteres raros?, lo pregunto porque me sucedió lo mismo en otro script que saqué de PHP.net.
La verdad, estimado Raspu, tienes toda la razón en tu punto. Claro, si tienes las letras con tilde con utf-8 de entrada, al recodificar como utf-8 volverás a tener.... utf-8.
Pero el error es otro, y está en el algoritmo. Veamos si lo pillas (apuesto que puedes :)
Ufff... por ponerme a hacer otras w... había olvidado la revisión del fallo jajajajaja :P
Oye, quería aprovechar de preguntarte algo sobre UTF-8. Poniéndo como ejemplo este mismo sitio... si tienes que escribir un texto con tildes directamente en el HTML (no extraído de la base de datos) como tienes que hacerlo???
- Escribiendo directamente la ?
- Escribiendo Ñ
Te lo pregunto porque revisando tu codigo fuente (y el de otros blogs UTF-8) el texto que supongo está escrito directamente en el HTML igual se ve con signos raros en el codigo fuente (cuando hay tildes) pero que se ven bien en el navegador. Por ejemplo, el texto junto al buscador.
respecto al comentario anterior, olvídalo. Tenía un enredo con el tema de los caracteres por culpa del editor que estoy ocupando (Notepad++), pero ya lo solucioné y pude cachar bien la mecánica del asunto. :P
Pucha, Raspu, tengo toda la confianza en que vas a pillar el fallo...
No es nada tan complicado. Una pista: a la condición final le falta algo...
Enviar un comentario nuevo