El mié., 22 jul. 2020 a las 0:01, Darío vía Python-es (<python-es@python.org>) escribió:
> > Estaba hablando con un compañero y me acaba de decir lo mismo. > Ahora, lo ideal es que se use el utf o latin? Cuál es más aconsejable? > Gracias > > > Hola, uso utf-8 porque tengo entendido que si usás Windows debe ser latin > (al menos eso me pasaba al compilar archvos .tex). Habitualmente pongo > > # -*- coding: utf-8 -*- > > al inicio del guión. > > Con eso estás informando al intérprete cuál es la codificación del fichero python (tu código fuente) y para nada estás especificando la codificación de caracteres con la que te comunicas con el mundo exterior. Con eso afectas a la codificación de cadenas unicode en tu código. Unos ejemplos estrambóticos para ilustrarlo en python2 (sacados de una charla del 2011): Ejemplo 1: # -*- coding: rot13 -*- cevag h"fnyhqbf qrfqr rfcn�n" Ejemplo 2: # -*- coding: rot13 -*- cevag "hola mundo desde españa" La forma correcta es la comentada por ricardo: open(nombre_del_fichero, encoding='latin-1') En cuanto a si es mejor latin-1 o utf-8 depende. Con latin-1 todos los caracteres ocupan un byte por lo que el uso de memoria es más predecible y se puede usar algoritmos como el boyer-moore en la representación binaria del texto. Con utf-8 tienes una representación mayormente compacta pero capaz de representar klingon, kanji, cirílico y caracteres de casi cualquier otra lengua. Personalmente prefiero utf-8 y tener muy claro que cadenas de bytes y de texto son cosas completamente diferentes aunque haya formas de convertir unas en otras: por la red o a la consola de texto o... transmites bytes e internamente trabajas con cadenas de texto. Cualquier comunicación dentro/fuera o fuera/dentro requiere definir una codificación de caracteres (la que sea) y hacer la conversión correcta. Un saludo, Javi
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es