cx_oracle连接oracle的us7ascii数据集乱码问题

1.问题

oracle数据库使用到的字符集是us7ascii,总的来说就是ascii数据集,7位表示一个字符,对于英文还没有问题,但是遇到中文就G了。
查看自己数据库使用的字符集:

SELECT value
FROM nls_database_parameters
WHERE parameter = 'NLS_CHARACTERSET';

2.网上出的解决方法(弯路)

第一种方法

import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

这是在cx_oracle5或者之前的版本可以支持,现在都升到9了,甚至官网都不建议使用cx_oracle了,建议使用他们最新的驱动,不需要本地下载客户端。

第二种方法

# 替换以下信息为你的实际数据库连接信息
dsn_tns = cx_Oracle.makedsn('****', '***', service_name='***')# 字符集和字符编码
encoding = 'UTF8'
self.connection = cx_Oracle.connect(user='123', password='123', dsn=dsn_tns, encoding=encoding)

这种方法对于数据库字符集本来就是utf8或者gbk的数据好使,但是对于数据库字符集是us7ascii的真的没用。

3.真正的解决方法

cursor.execute("SELECT DAY,utl_raw.cast_to_raw(OPERATORS) from table")
for raw in cursor:# gbk,utf-8等等都尝试下print(str(raw[1], encoding='gbk'))

最后就能显示中文,如果使用pandas的,也可以使用pandas的decode方法来重新编码。
它的原理其实就是将数据库的中文数据不适用us7ascii编码,而是直接传输二进制流传输到客户端,客户端通过gbk编码就可以了。
对于很多老旧的项目的数据库,没怎么维护,也没怎么用,索性数据库字符集就是默认的us7ascii,坑人。
希望帮助到你了,能帮忙点个赞,顶上去,让更多人少走弯路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【笔试常见易错选择题01】else、表达式、二维数组、%m.ns、%m.nf、常量指针和指针常量、宏定义、传参、数组越界、位段

1. 下列main()函数执行后的结果为&#xff08;&#xff09; int func(){ int i, j, k 0; for(i 0, j -1;j 0;i, j){ k; } return k; } int main(){cout << (func());return 0; }A. -1 B. 0 C. 1 D. 2 判断为赋值语句&#xff0c;j等于0 0为假不进循环 选B. 2. 下面程…

【Java万花筒】开启数字金融新纪元:深入解析开放银行与Java应用

Java支付大揭秘&#xff1a;从Stripe到Alipay&#xff0c;电子商务全覆盖 前言 在数字化时代&#xff0c;电子商务和支付领域蓬勃发展&#xff0c;而Java库作为开发者的得力工具&#xff0c;在整个过程中扮演着关键的角色。本文将深入探讨几个与电子商务和支付密切相关的Java…

虹科方案|释放总线潜力:汽车总线离线模拟解决方案

导读&#xff1a;传统的ECU模拟工具通常需要依赖上位机软件来发起通信&#xff0c;这在离线场景和自动化产线中带来不便。为了应对这一挑战&#xff0c;虹科推出了创新的汽车总线离线模拟解决方案&#xff0c;基于PCAN-Router系列网关&#xff0c;通过内部可编程固件&#xff0…

轻松Python批量将图片合并为PDF并按数字顺序排序(成功)

在处理数字化文档或报告时,我们经常需要将扫描的图片或图表批量合并为单一的PDF文件。Python提供了一种简便的方法来自动化这个过程,并且可以确保图片按照数字顺序(如1, 2, 10而不是1, 10, 2)正确排序。本文将介绍如何使用Python和Pillow库来实现这一功能。 安装Pillow库 …

数据结构:图文详解 搜索二叉树(搜索二叉树的概念与性质,查找,插入,删除)

目录 搜索二叉树的相关概念和性质 搜索二叉树的查找 搜索二叉树的插入 搜索二叉树的删除 1.删除节点只有右子树&#xff0c;左子树为空 2.删除节点只有左子树&#xff0c;右子树为空 3.删除节点左右子树都不为空 搜索二叉树的完整代码实现 搜索二叉树的相关概念和性质 …

一、冯诺依曼计算机

图灵与冯诺依曼两位计算机发展重要人物。冯诺依曼简介&#xff1a;被誉为现代计算机之父。 世界上第一台通用计算机Eniac&#xff0c;就有冯诺依曼的参与。他提出的思想&#xff0c;将数据和程序分离开了&#xff0c;程序是程序&#xff0c;数据是数据&#xff0c;数据可以由程…

大数据时代效率革新:数字化管理助力企业迈向全新高度-亿发

在大数据时代的浪潮中&#xff0c;数字化管理成为企业不可或缺的发展趋势。以信息技术为支撑&#xff0c;数字化管理为企业带来了前所未有的机遇和挑战。让我们一起探讨&#xff0c;在这个数字时代&#xff0c;数字化管理如何引领企业走向更加高效、智能的未来。 1. 数据驱动决…

更新!3D开发工具HOOPS发布2024版本:增强Navisworks、Revit等新版本支持,性能进一步提高!

3D工程软件开发工具包的领先提供商Tech Soft 3D今天宣布推出HOOPS Exchange 2024&#xff08;支持30多种文件格式的领先CAD数据转换SDK&#xff09;和HOOPS Publish 2024&#xff0c;用于发布交互式3D PDF、3D HTML和3D CAD数据的领先工具包。 HOOPS Exchange现在支持Naviswor…

轻松开始在eBay上销售:如何创建eBay卖家账号

eBay作为全球最大的在线拍卖和购物平台之一&#xff0c;为卖家提供了极大的商机。如果您想在eBay上开始销售并赢得更多客户&#xff0c;本文将为您提供创建卖家账号的详细步骤指南&#xff0c;帮助您开启成功的电商之旅。 一、访问eBay官方网站 首先&#xff0c;打开您的浏览…

2024美赛F题思路/代码

美赛直播b站&#xff0c;提前关注&#xff1a;川川菜鸟 美赛辅导预定&#xff1a;美赛服务 去年美赛A题&#xff1a;2023美赛A题 题目 待定 问题一 思路 待定 模型 待定 程序 待定 问题二 待定 思路 待定 模型 待定 程序 待定

微信公众号在线客服源码系统,开发组合PHP+MySQL 带完整的安装代码包以及搭建教程

移动互联网的快速发展&#xff0c;微信公众号成为了企业与用户之间的重要沟通桥梁。为了满足企业对微信公众号在线客服的需求&#xff0c;小编给大家分享一款基于PHP和MySQL的微信公众号在线客服源码系统。这套系统能够帮助企业快速搭建自己的微信公众号在线客服平台&#xff0…

FPGA高端项目:Xilinx Artix7系列FPGA 多路视频缩放拼接 工程解决方案 提供4套工程源码+技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案我已有的FPGA视频拼接叠加融合方案本方案的Xilinx Kintex7系列FPGA上的ov5640版本本方案的Xilinx Kintex7系列FPGA上的HDMI版本 3、设计思路框架设计框图…

【Midjourney】新手指南:参数设置

1.--aspect 或 --ar 用于设置图片长宽比&#xff0c;例如 --ar 16:9就是设置图片宽为16&#xff0c;高为9 2.--chaos 用于设置躁点&#xff0c;噪点值越高随机性越大&#xff0c;取值为0到100&#xff0c;例如 --chaos 50 3.--turbo 覆盖seetings的设置并启用极速模式生成…

实际项目中的SpringAOP实现日志打印

目录 一、AOP实现日志 1.1 需求分析&#xff1a; 1.2 定义切面类和切点&#xff1a; 扩展&#xff1a;finally中的代码块一定会执行吗&#xff1f; 扩展 总结 1.3 定义环绕通知 1.4 handleBefore 的具体实现 1.4.1 获取url 1.4.2 获取接口描述信息 1.4.3 后续获取 1.5…

全球网络加速的5种方法,云桥通力推SDWAN企业组网

全球网络加速旨在通过采用多种技术和服务&#xff0c;提高全球范围内的网络连接速度和性能。在全球化发展的趋势下&#xff0c;跨国企业、云服务提供商和全球用户之间的网络通信变得日益关键。其目标是克服跨国网络连接中的延迟、带宽限制和数据包丢失等问题&#xff0c;以提供…

向量数据库Milvas

Milvus是在2019年创建的&#xff0c;其唯一目标是存储、索引和管理由深度神经网络和其他机器学习&#xff08;ML&#xff09;模型生成的大规模嵌入向量。 Milvus的概述 – Milvus向量库中文文档 (milvus-io.com) Milvus 2.0 概述 - 《Milvus 帮助手册-教程 - V2 版本》 - 极客…

【C++】 C++入门—内联函数

C入门 1 内联函数1.1 定义1.2 查看方式1.3 注意 Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读下一篇文章见&#xff01;&#xff01;&#xff01; 1 内联函数 1.1 定义 程序在执行一个函数前需要做准备工作&#xff1a;要将实参、局部变量、返回地址以及若干寄存…

小米商城服务治理之客户端熔断器(Google SRE客户端熔断器)

目录 前言 一、什么是Google SRE熔断器 二、Google SRE 熔断器的工作流程&#xff1a; 三、客户端熔断器 (google SRE 熔断器) golang GRPC 实现 四、客户端熔断器 (google SRE 熔断器) golang GRPC单元测试 大家可以关注个人博客&#xff1a;xingxing – Web Developer …

【C++干货基地】C++引用与指针的区别:深入理解两者特性及选择正确应用场景

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

Log4j2-11-log4j2 Layout 布局入门介绍

Layout 布局 Appender使用Layout将LogEvent格式化为一种表单&#xff0c;以满足将要消费日志事件的任何需求。 在Log4j中。x和Logback布局被期望将事件转换为字符串。 在Log4j 2布局返回一个字节数组。这使得Layout的结果可以在更多类型的appender中使用。然而&#xff0c;这…