cx_Oracle在US7ASCII编码如何正常使用中文字符?

问题描述

在开发过程中使用cx_Oracle对设置为us7ascii字符集的ORACLE数据库进行访问时,发现查询条件不能包含中文字符且查询输出也没办法正常显示中文

代码及数据表样本

数据表样本:

nonamestatusdate
1apple已上架20171203
2pear已上架20171203
3banana已售磬20171203

代码

# -*- coding:utf-8 -*-

import sys

import os

import cx_Oracle

ip=''

port=''

tnsname=''

os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.US7ASCII'

str_dsn = cx_Oracle.makedsn(ip,port,tnsname)

conn = cx_Oracle.connect(user='123',password='123',dsn=str_dsn)

cur = conn.cursor()

data = cur.execute("select status from YW_DATA where date like '20171203'")

res = data.fetchone()[0] #报错位置

print(one)

报错信息

    data.fetchone()[0]

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 0: ordinal not in range(128)

期间我已根据度娘的解决方法修改NLS_LANG为ZHS16GBK,UTF8等编码都没有办法正常读取,请问大牛们有什么方法可以解决这个问题?

回答:

Image手机版不好打字,只好把自己的文档截图了

回答:

请问问题解决了吗?可以传授给我吗。

以上是 cx_Oracle在US7ASCII编码如何正常使用中文字符? 的全部内容, 来源链接: utcz.com/a/156544.html

回到顶部