Guardar "Bush ocultó los hechos" en el bloc de notas

Respuestas:

93

Esto se debe a un problema con la función API Win32 IsTextUnicode que se remonta a Windows NT 3.5. Si un archivo está codificado en ANSI, la función lo interpretará como UTF-16LE dando como resultado caracteres ilegibles.

Esto también me fascinó cuando lo descubrí, ya que era un poco joven e ingenua, pensé que era una conspiración real :)

En realidad, hay un artículo de Wikipedia sobre esto que puede encontrar aquí .

John T
fuente
17
Interesante. +1 para el artículo de Wiki que me enseñó la palabra "mojibake" y su advertencia particularmente particular de que "sin el soporte de representación adecuado, puede ver signos de interrogación, cuadros u otros símbolos ..." :-)
jtb
3
¡+1 porque, a pesar de usar Windows desde que tengo memoria, de alguna manera nunca me encontré con esto!
Jared Harley el
77
Bueno, es claramente un error, porque el software es incorrecto. Lo mejor que puede argumentar es que los errores como este son imposibles de eliminar sin perder otra funcionalidad. Y, diablos, Microsoft lo arregló en Vista [según Wiki], por lo que alguien obviamente pensó que también era un error.
John Fouhy el
11
No es un error si hace exactamente lo que anuncia (es decir, documentado). Se especifica con precisión que es una prueba estadística y no infalible, y cuanto más corta es la entrada, mayor es la tasa de error. Sucede que en este caso, sucede con una oración que tiene sentido para los humanos. Esta oración en particular no funciona con Vista y 7 porque la implementación de IsTextUnicode se ha cambiado y presumiblemente mejorado y ahora se informa correctamente para esta oración. Lo que tenemos es mejor o peor tasa de falsos positivos / negativos, no errores.
KTC
55
"No es un error si hace lo que se supone que debe hacer". Sí, tal vez el término técnico es 'falla de diseño' o algo así, pero creo que la mayoría de la gente aún diría que está bien llamarlo un error.
davr