[Python] Strings a unicode

Iniciado por O-LLOS-O, 30 Julio 2010, 08:48 AM

0 Miembros y 1 Visitante están viendo este tema.

O-LLOS-O

 Hola a todos,

Estoy trabajando en un script de pyhton que utiliza mysql, y tengo un problema con el tema de los caracteres especiales, que en la base de datos me aparecen mal.

Lo soluciono, convirtirndo los string a unicode por ejemplo:

Código (python) [Seleccionar]
string = u'ºªà'

esto me da bien, y se queda perfecto en la base de datos, pero esto no lo puedo hacer, ya que mis strings no los conozco, por lo tanto deberia hacer algo del estilo

Código (python) [Seleccionar]
string = unicode(string)

Pero utilixando el string anterior, me salta un error.

Haber si alguien podria ayudarme, Gracias

Saludos!!


Novlucker

Que error te da? ¿Python 2.6 verdad? (es que no tengo para probar con esa versión)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

@Sthéfano

Lo probe, tengo Python 2.6.5

Traceback (most recent call last):
  File "C:\Python26\some.py", line 6, in <module>
    print '%s' % Unicode(String)
  File "C:\Python26\some.py", line 2, in Unicode
    String = unicode(String)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xba in position 2: ordinal not in range(128)


Ahora me estoy por ir, pero dejo el error que sale. Luego vere si te lo corrigo

PD: probastes con la 3 de Python?

Novlucker

Y si cambias la codificación por defecto del script?
Código (python) [Seleccionar]
# coding=utf-8
Eso en la primera línea del script, y luego no uses unicode para convertir, solo pon el string.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

O-LLOS-O

si lo haces asi, poniendo utf-8 al principio y ya esta,  la bbdd lo reconoce como un caracter estranyo, como si pones un à, que te salen cosas raras en la bbdd, pero con el encode eso se soluciona, pero se be que el € se anyadoi mas tarde y esta en la tabla latin-9 o algo por el estilo...

Me dejado de investigar en el tema y he ehcho un repalce de '€', por 'Euro' y ya esta...


Mercy