Word me pone un cartel de que se está cargando, luego algo de la licencia, los márgenes están mal y la fuente no me gusta
Obviamente un editor de texto enriquecido como Word no es para editar código, como ya dije usa al menos Notepad++
El Bloc de Notas de Windows 7 utiliza por defecto la codificación ANSI, ya en Windows 10 se usa por defecto UTF-8
Pero yo el texto lo veo igual ¿por qué para él es tan diferente? Suena como a que un visor de imágenes no pueda cargar un PNG o algún formato normal, suena limitadito >__<
Tu lo ves normal porque tu editor de texto ha reconocido correctamente la codificación del archivo. Lo mismo debería pasar con los editores de imágenes siempre y cuando detecten bien el formato y soporten ese formado, si por ejemplo hacen la detección por la extensión del archivo pueden tener problemas si el archivo tiene la extensión cambiada, IrfanView hace la detección por su cabecera (primeros bytes del archivo en bruto) así que no le puedes engañar, incluso por defecto ofrece cambiarle la extensión a la correcta y soporta prácticamente todos los formatos de imágenes (si tiene las extensiones instaladas)
Si el UTF-8 acepta tildes y Python trabaja con UTF-8 ¿por qué si le doy un archivo con un tilde actúa como si le estuviera dando algo que no puede manejar? ¿es que a nivel de lenguaje máquina lo expresa distinto?
Python no se molesta en revisar la codificación del archivo, si no le indicas claramente para él le has pasado uno bajo codificación UTF-8
Y no, no son lo mismo, las codificación más usuales son ANSI y UTF-8, puedes hacer pruebas guardando un archivo de texto con la palabra ñandú que es una palabra clásica para pruebas de codificación, lo guardar bajo esas tres codificación y luego los abres con un editor hexadecimal y verás las diferencias:
ANSI
Offset(d) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
00000000 F1 61 6E 64 FA ñandú
UTF-8
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 C3 B1 61 6E 64 C3 BA ñandú
ANSI (para lo que puedes ver) utiliza un solo byte para codificar cualquier caracter incluso los caracteres especiales como la ñ y la ú por ejemplo, sin embargo UTF-8 aunque igual utiliza un solo byte para los caracteres comunes (ASCII), ya utiliza dos bytes (o más) para los caracteres especiales, C3 B1 para ñ, y C3 BA para la ú
Lo anterior limita a ANSI a poder trabajar con máximo 256 "caracteres" 00 a FF, UTF-8 en cambio puede trabajar con una infinidad de caracteres porque es capaz de codificar caracteres especiales con dos o más bytes.
Si por ejemplo eres chino, ruso o japonés y quieres escribir hola en tu código fuente, ANSI no te sirve, debes usar UTF-8, antes tenían que usar imágenes porque UTF-8 no existía o no tan estándar
hola en chino bajo UTF-8 (
你好 => 2 caracteres):
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 E4 BD A0 E5 A5 BD ä½ å¥½
hola en japonés bajo UTF-8 (
こん
にち
は => 5 caracteres):
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 E3 81 93 E3 82 93 E3 81 AB E3 81 A1 E3 81 AF ã.“ã‚“ã.«ã.¡ã.¯
---
Ves que te dice error porque ha encontrado el hexadecimal FA (ú) y ese no es un UTF-8