[pyar] Problema con acentos en Sqlite y Python

Roberto Alsina ralsina en netmanagers.com.ar
Lun Abr 4 19:19:02 ART 2011


On 4/4/2011 7:07 PM, craf wrote:
> Hola.
>
> Buceando por Google me encuentro que es un problema bastante común lo de
> los acentos en Python. En general dan soluciones de utilizar encode y
> decode pero no he logrado hacerlo funcionar.
>
> Estoy probando Sqlite y quisiera guardar palabras con la letra ñ en la
> base de datos.
>
> El código para guardar en la base de datos es:
>
> #! /usr/bin/env python
> # -*- encoding: utf-8 -*-
>
> import sqlite3
>
>
> conn = sqlite3.connect('/mi_ruta/bdatos.db')
> c = conn.cursor()
> c.execute("""insert into ciudad values
>               (1, 'chañaral')""")

Como no estás usando un objeto unicode sino un str, y declaraste que tu 
archivo es utf-8,
  'chañaral' estaría encodeado en utf-8, peeeero...

> conn.commit()
> c.close()
> ----------------------------------------------------
>
> El código para leer es el siguiente:
>
>
> #! /usr/bin/env python
> # -*- encoding: utf-8 -*-
>
> import sqlite3
>
> conn = sqlite3.connect('/mi_ruta/bdatos.db')
> c = conn.cursor()
> c.execute('select * from ciudad')
> for fila in c:
>      print fila
> c.close()
>
> Este código me entrega el siguiente resultado:
>
> (1,u'cha\xf1aral')

Eso es 'chañaral' encodeado en latin-1.

En consecuencia, sospecho que tu archivo 'utf-8' no está en utf-8 sino 
en latin-1.




More information about the pyar mailing list