[cx-oracle-users] How to use unicode in the right way?
Brought to you by:
atuining
From: Vizcayno T. <pre...@ho...> - 2006-10-09 04:53:54
|
Hello: I have have problems saving ascii and unicode data that contains spanish symbols, please look at the next py25 code using last version of cx_oracle under Windows XP2: # -*- coding: utf-8 -*- import cx_Oracle as Ora connOra = Ora.connect("user", "pass", "DB") cursOra = connOra.cursor() cursOra.execute("CREATE TABLE ASCTAB (txt VARCHAR2(30))") connOra.commit() txt = "áéíóú > ñÑ > ¿?" print "String: ", txt cursOra.execute("INSERT INTO ASCTAB VALUES('%s')" % txt) connOra.commit() cursOra.execute("SELECT * FROM ASCTAB") for i in cursOra.fetchall(): print "DB data: ", i[0] cursOra.execute("CREATE TABLE UNITAB (txt NVARCHAR2(30))") connOra.commit() uTxt = unicode('"áéíóú > ñÑ > ¿?"', 'latin-1') print "Unicode: ", uTxt cursOra.execute("INSERT INTO UNITAB VALUES('%s')" % uTxt) connOra.commit() cursOra.execute("SELECT * FROM UNITAB") for i in cursOra.fetchall(): print i[0] connOra.close() The results I get after executing previous program are: .python test.py String: ßÚݾ· > ±Ð > +? DB data: ????? > ?? > ?? Unicode: "áéíóú > ñÑ > ¿?" Traceback (most recent call last): File "test.py", line 19, in <module> cursOra.execute("INSERT INTO UNITAB VALUES('%s')" % uTxt) TypeError: expecting None or a string SQL> select * from asctab; TXT ------------------------------ ????? > ?? > ?? SQL> The source file test.py was saved as utf-8. How can I save and retrieve spanish characters in a correct way? Many thanks for your help. _________________________________________________________________ MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/ |