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

Imagen de Raspu

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.

Enviado por Raspu (no verificado) el Lun, 02/01/2006 - 12:44.
Imagen de clbustos

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

Enviado por clbustos el Lun, 02/01/2006 - 15:48.
Imagen de Raspu

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.

Enviado por Raspu (no verificado) el Jue, 05/01/2006 - 09:19.
Imagen de Raspu

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

Enviado por Raspu (no verificado) el Jue, 05/01/2006 - 16:24.
Imagen de clbustos

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

Enviado por clbustos el Jue, 05/01/2006 - 22:12.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
If you have a Gravatar account, used to display your avatar.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato