【发布时间】:2013-01-09 05:46:25
【问题描述】:
在 oracle db 表上,我有一个带有一些数据的 ® 字符
pyodbc 从 WinXP 32 位和 Win7 64 位执行相同的查询会得到不同的结果
将数据转储到文件中,输出如下:
Winxp:数据与? # ® 替换为 ?
Win7 : 带有 ® # 正确数据的数据
任何想法,WinXP的问题是什么,
查询代码如下:
def dbquery(dbipaddr,dbname,pwd,sid,port,querystr):
try:
import cx_Oracle
conn_str=dbname+"/"+pwd+"@"+dbipaddr+":"+port+"/"+sid
conn = cx_Oracle.connect(conn_str)
cur=conn.cursor()
cur.execute(querystr)
queryRes = cur.fetchone()
tmp = []
res = []
while queryRes:
for res in queryRes:
try:
tmp = res.read()
except:
tmp = res
tmp.append(tmp)
res.append(tuple(tmp))
queryRes = cur.fetchone()
tmp = []
conn.close()
except Exception, ex:
print ex.message
return []
return res
【问题讨论】:
-
如何将数据转储到文件中?这与 Windows XP 无关
-
我尝试过使用各种方法转储它,以文本格式、二进制写入文件以及打开编解码器文件,但都给出相同的结果
-
我的意思是你需要显示代码
-
@Esailija:添加了查询代码
-
好吧,你没有指定连接编码。您可以使用
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.UTF8'指定 UTF-8。但我也在寻找将数据转储到文件的代码。
标签: python unicode windows-xp pyodbc