[pyar] Codecs, UTF-8

Facundo Batista facundobatista en gmail.com
Mie Oct 13 09:02:31 ART 2010


2010/10/12 Martin Cerdeira <martincerdeira en gmail.com>:

> E:\HOME\Python\Qt\Html>main.py
> Traceback (most recent call last):
>  File "E:\HOME\Python\Qt\Html\main.py", line 22, in on_FileOpen_triggered
>    self.web.setHtml(codecs.open(fname, "r", "utf-8" ).read())
>  File "C:\Python26\lib\codecs.py", line 865, in open
>    file = __builtin__.open(filename, mode, buffering)
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xf3 in position 24: ordinal
>  not in range(128)
>
> Ahora, a raiz de que me dijiste que era imposible que diera el error
> con el open, me puse a ver otras cosas y, noté algo que no había
> notado. El path al archivo tiene un tilde. Es decir:

El open es imposible que te de un error. El codecs.open sí puede,
porque está haciendo una conversión.

¿Estás seguro que ese archivo que estás queriendo abrir está en UTF8?


> # -*- coding: utf-8 -*-

Deberías saber qué encoding poner ahí, y no empezar a cambiarlos hasta
que algo funcione. El encoding que tenés que poner ahí es el que está
usando tu procesador de texto.

Si es vim, poné ":set encoding" y te va a decir qué estás usando.


> string = "ñandú"

Nunca pongas caracteres no-ASCII en strings no-Unicode. Poné así:

  string = u"ñandú"


Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/



More information about the pyar mailing list