python项目读Oracle数据遇到了中文乱码
在使用Python读取Oracle数据时,出现了中文乱码,如下:
代码如下:
import cx_Oracle
class OracleSessionPool(object):
def __init__(self, user, password, ip, name):
self.conn_pool = cx_Oracle.SessionPool(
user=user,
password=password,
dsn='%s/%s' % (ip, name),
min=1,
max=500,
increment=1
)
def conn(self):
return self.conn_pool.acquire()
def fetch_all(self, sql):
con = self.conn_pool.acquire()
cursor = con.cursor()
cursor.execute(sql) # 执行sql语句
con.commit()
try:
data = cursor.fetchall() # 获取数据
except Exception:
data = []
con.close()
return data
def close(self):
self.conn_pool.release()
使用如下:
oracle = OracleSessionPool('account','password', 'ip', 'name')
data = oracle.fetch_all(TABLES_SQL)
print('table_sql数据:%s' % data)
然后,读取到的数据存在中文乱码问题。
解决方法:
使用os库将Python编码设置为与Oracle中的编码一致:
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
oracle = OracleSessionPool('account','password', 'ip', 'name')
data = oracle.fetch_all(TABLES_SQL)
print('table_sql数据:%s' % data)
乱码问题解决:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!