[pyar] Problema con acentos en Sqlite y Python
Juan A. Diaz
juan en linux.org.ar
Lun Abr 4 22:01:27 ART 2011
On lun, 2011-04-04 at 22:27 -0300, Roberto Alsina wrote:
> craf writes:
>
> > Hola Roberto.
> >
> > He tratado de convertir explícitamente la cadena a unicode con el
> > siguiente código pero sin resultado:
> >
> > ---Código-----
> > #! /usr/bin/env python
> > # -*- encoding: utf-8 -*-
> >
> > import sqlite3
> >
> >
> > conn = sqlite3.connect('/mi_ruta/bdatos.db')
> > c = conn.cursor()
> > valor = 1
> > nombre =u'Chañaral'
> > t =(valor, nombre)
> > c.execute('insert into tabla1 values(?, ?)',t)
> > conn.commit()
> > c.close()
>
> Aca no estas convirtiendo la cadena a utf-8 en ninguna parte.
> Declaraste que el archivo es utf-8 (con el comentario) y
> declaraste que nombre es un literal unicode (conla u).
>
> Los literales unicode no son utf-8 ni ningun otro encoding, son unicode.
> Para convertirlo a utf-8, tenes que hacer nombre.encode('utf-8')
>
> > Ahora, realmente no se por donde pueda estar guardándose en Latin-1,
> > porque me imagino que al utilizar el encode a UTF-8 lo estaría guardando
> > con esa codificación en la base de datos(¿o no?).
>
> No necesariamente.
>
> > El archivo que se crea con Geany también se guarda en utf-8.
>
> Como estas seguro de esto?
Para estar seguro podes abrir una consola y usar el comando file
nueces en indigo:~$ echo "á" > a
nueces en indigo:~$ file a
a: UTF-8 Unicode text
nueces en indigo:~$ echo b > b
nueces en indigo:~$ file b
b: ASCII text
Saludos.
nueces...
More information about the pyar
mailing list