python+kinterbasdb+firebird的中文处理问题?

Python/PHP/Perl 开发与设计
回复
头像
百草谷居士
帖子: 3006
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 19 次
接收感谢: 32 次
联系:

python+kinterbasdb+firebird的中文处理问题?

#1

帖子 百草谷居士 » 2008-03-02 10:09

我使用python+kinterbasdb访问firebird数据库,firebird数据库在windows平台上,创建的时候并没有指定字符编码,使用了中文数据库名称和中文表格、中文字段名称。

开始无法连接,后来采用先定义一个unicode字符串,然后编码为"gbk"的方法终于连接到数据库了,但是先在无法连接到表格。哪位有这方面的经验清讲一下。
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
头像
百草谷居士
帖子: 3006
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 19 次
接收感谢: 32 次
联系:

#2

帖子 百草谷居士 » 2008-04-15 6:40

我变通了一下,首先在数据库里定义了一个名称不含中文的视图,视图的字段名称也不含中文。这样可以连接了,但是字段内容中的中文无法正确显示,显示出来的是十六进制编码。那位高手给指点一下。
dsnstring=u'196.196.128.1:d:\db\财务报表.gdb'
con=kinterbasdb.connect(dsn=dsnstring.encode('gbk'),user='SYSDBA',password='masterkey',charset='utf-8')
cur=con.cursor()
cur.execute('select * from lrl')
print cur.fetchall()
结果如下,其中的第三列正常应该为中文,两外第四第五列为固定小数位数类型,就是数据库中的numeric类型现在成了浮点类型:
[(105, '904', '\xce\xe8\xb8\xd6\xca\xb5\xd2\xb5\xb9\xab\xcb\xbe(\xba\xcf\xb2\xa2) ', 162937610.90000001, 265502.78999999998, 0.16289999999999999), (105, '904', '\xce\xe8\xb8\xd6\xca\xb5\xd2\xb5\xb9\xab\xcb\xbe(\xba\xcf\xb2\xa2) ', 121573516.20999999, 208025.29999999999, 0.1711), (105, '904', '\xce\xe8\xb8\xd6\xca\xb5\xd2\xb5\xb9\xab\xcb\xbe(\xba\xcf\xb2\xa2) ', 769001911.17999995, 3788222.8599999999, 0.49259999999999998), (105, '904', '\xce\xe8\xb8\xd6\xca\xb5\xd2\xb5\xb9\xab\xcb\xbe(\xba\xcf\xb2\xa2) ', 127145379.01000001, 475918.0, 0.37430000000000002)]
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
回复

回到 “Python/Php/Perl”