在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
所以这里有两个可能的失败点,数据库连接编码和转储到文件时的文件编码。两者 需要指定,否则您将任由默认编码的摆布,这些编码将在不同平台之间变化,并且可能不是您想要使用的。你知道吗
要指定数据库的连接编码,请执行以下操作
要指定文件编码,请执行以下操作:
就好像你第一次做的事情还没做一样
相关问题 更多 >
编程相关推荐