<h1>CX_ORACLE汉字乱码的处理</h1>

   环境:Python3.x+cx_Oracle6.x

   结论:只要 客户端的NLS_LANG设置与oracle数据库服务器的一致,且NLS_LANG不为WE8ISO8859P1,则汉字显示正常。

    故有必要将字符集为WE8ISO8859P1的oracle数据库,改为ZHS16GBK、UTF8等。实在不能修改字符集的话,则凡是出现汉字的地方,都要进行转码:x.encode(‘latin1‘).decode(‘gbk‘)   ——x为数据库里有汉字的字段。

本人亲测:

  oracle数据库的原字符集为ZHS16GBK,将其改为WE8ISO8859P1,以便导入字符集为WE8ISO8859P1的dmp文件;导入后再将oracle数据库的字符集改回,汉字显示正常:

  1、 将老oracle的数据导出,字符集编码为WE8ISO8859P1

  2、新oracle数据服务器本身的编码为 ZHS16GBK。为导入编码为WE8ISO8859P1的dmp文件,临时改为 WE8ISO8859P1。并修改os的注册表或环境变量,使NLS_LANG=WE8ISO8859P1。然后重启oracle服务。

  3、导入 dmp文件(其真实的字符集亦为WE8ISO8859P1)。若在 客户机使用 imp 导入,注意客户机的NLS_LANG,务必是 WE8ISO8859P1。

  4、将oracle数据库的字符集改回 ZHS16GBK,修改os的注册表或环境变量,使NLS_LANG= ZHS16GBK。然后重启oracle服务。

  5、查询:汉字正常。

  注一:exp导出的包,直接修改对应的字节,可以骗过imp程序:导入时不报错。但是读取时,汉字乱码。

   注二:网上高手说的修改oracle数据库字符集能成功的原理:

原文地址:https://www.cnblogs.com/Afisher/p/9403820.html

时间: 2024-08-30 16:44:26

<h1>CX_ORACLE汉字乱码的处理</h1>的相关文章

CSV文件读取,解决汉字乱码

public String getDeptOuId(String openId) throws IOException { String deptId = ""; // 存储信息的文件的绝对路径  String csvPath = FileUtil.getWorkingPath()  .resolve(ConfigUtil.getConfig().get("idmappings")).toString(); System.out.print(csvPath); //

CSV文件写入,解决汉字乱码

    /**  * @param userInfoMap 注册用户的相关信息  * @throws IOException FileNotFoundException  * @return 将用户信息写入csv文件中  */ public static void WriteCSV(Map<String,String> userInfoMap){ try { // 存储经销商ID和经销商微信信息的文件路径 String csvPath = FileUtil.getWorkingPath() .

汉字乱码处理

汉字乱码现象有4种类型: 1.文本乱码:是Windows系统显示乱码,如:菜单.桌面.提示框等.这是由于注册表中有关字体部分的设置不当引起的: 2.文档乱码:是各种应用程序.游戏本来显示中文的地方出现乱码.这种乱码形成的原因比较复杂,有第1类的乱码原因,也可能是软件中用到的中文动态链接库被英文动态链接库覆盖所造成的: 3.文件乱码:主要是指邮件乱码: 4.网页乱码:是由于港台的繁体中文大五码(BIG5)与大陆简体中文(GB2312)不通用而造成的. 消除各类乱码的方法 一 系统乱码的消除方法 这

安卓+servlet+MySql 查询+插入(汉字乱码解决)

问题: 安卓程序,通过servlet连接MySQL数据库,并实现查询和插入(修改,删除类似). 其中遇到的最大的问题是:汉字乱码问题(查询条件有汉字乱码.servlet的汉字到数据乱码.安卓通过servlet方法数据库汉字乱码) 当所有的编码(客户端,服务端,数据库)都为UTF-8时,但是插入汉字依然为乱码. 1.安卓客户端中的汉字到servlet中为乱码. 当插入到数据库的汉字为乱码(而不是问号)时. 解决方法: 在安卓客户端将String中的汉字由UTF-8转码为ISO8859-1. use

Jmeter的BeanShell汉字乱码

本文来自自己的博客:www.wangerbao.com 在性能测试过程中,需要在BeanShell中写脚本来协助测试,但是有个缺点就是BeanShell汉字乱码,导致用户体验十分不好.网上找到解决办法:找到bin/jmeter.properties文件,搜索"jsyntaxtextarea.font.family" 能够找到如下部分信息: #jsyntaxtextarea.font.family=Hack #jsyntaxtextarea.font.size=18 之前默认是用#注释掉

解决psql客户端汉字乱码的一种方法

今天摆弄psql,发现汉字乱码,网上答案不够简介明了,但找到了一种比较有效的方法: 输入命令 SET client_encoding=GBK; 此命令将客户端编码方式变为GBK,即可实现汉字正常显示.

linux 下vi /vim 中文汉字乱码解决

http://my.oschina.net/laserdance/blog/53474很多win下编译的配置文件(译码格式有utf8/gbk)上传到linux服务器上时打开汉字乱码 解决方法如下: 修改vi环境配置 vi /etc/virc 任意地方增加一行 set fileencodings=utf-8,gbk,ucs-bom,cp936 保存 然后退出连接重新连接即可 更多文章里链接: vi/vim 中文乱码 vim终端下中文乱码问题 CSDN - 解决vi中文乱码问题

服务器端汉字乱码

1. get方式 window.open 参数汉字乱码 window,open 为get方式提交参数 客户端 docName = encodeURI(docName); docName = encodeURI(docName); 服务器端 docName = URLDecoder.decode(docName.trim(), "utf-8"); 或者直接 String name = request.getParameter("name");//接收数据 name =

几何画板遇到汉字乱码怎么办

在使用几何画板的时候,由于很多的用户对其不是那么精通,难免会遇到一些问题.比如打开已经绘制好的几何画板课件时,发现有汉字乱码的现象.那么面对这种情况,我们应该怎么办呢?        其实这种情况属于几何画板常见问题,只需重新设置下即可.下面将具体讲解解决几何画板汉字乱码的的方法.        解决几何画板汉字乱码的具体步骤:        1.按住“Shift”键,点击编辑菜单下的“预置”按钮.按住“Shift”键后,“预置”就变为“高级预置”,此时选择“高级预置”选项:        2.