JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
数据库版本号:Oracle 10g
字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII
JDK:1.6.0_45
Oracle驱动:ojdbc14.jar
使用JDBC操作数据库,获取连接、运行SQL没有问题。可是,查询出来的结果中,全部汉字,均显示为乱码。
debug查看到在数据从数据库中获取出来的时候,就已经是乱码,而使用PL/SQL等工具,均显示正常。
不知是否Oracle的驱动,在进行汉字处理的时候,使用了系统默认的字符集?此时,本着死马当活马医的理念,使用下对汉字的强制转码,ASCII码是标准的ISO-8859-1的子集,或许使用这个ISO-8859-1能够获取到正常的汉字?于是,首先測试使用new String(fieldValue.getBytes("ISO-8859-1"));输出依旧乱码!想想应该是将这东西进行转码,而不不过依照这个格式获取,于是调整为:new String(fieldValue.getBytes("ISO-8859-1"), "GBK"),測试下,搞定!不过,全部用到汉字的地方,均须要这么搞一下,有点麻烦。
据说,能够使用第二种方式:改Oracle的字符集!
1、须要改动注冊表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG 的值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2、改动一个系统变量NLS_LANG.
以上两种,第二种方式试过,能够。第一种,未在现有环境下做过測试。
另外,将获取到的汉字,写入另外一个oracle 11g的数据库中,发现:汉字不是依照一个汉字两个字节来存放的;而是一个汉字3个字节!
查了一下,发现:字符集是AL32UTF8,这个字符集一般都默认中文是3个字节。于是,须要将目标数据库表的字段长度进行扩充。实际对于汉字的问题,oralce以及较新的sqlserver,都支持nvarchar的格式,对于使用nvarchar的字段,不管汉字还是数字、字符、英文字母,均每一个字符占用1位。
假设不确定当前一个汉字占用几个字符,能够使用select length('汗') from dual;进行查看。
对于US7ASCII的字符集,眼下来看,新上的系统使用的较少了,而对于一些较老的遗留系统,可能会存在这样的情况。详细还需注意!
JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题的更多相关文章
- java 读取文件到String(解决中文乱码)
在改写V&View(维视)时用到了文件管理,需要从html文档读取字符串,可是一直出现中文乱码,一直解决不了.而且很是意外,我在本地运行代码时就能正常读取中文,当放到tomcat上时全是乱码, ...
- 解决Linux文档显示中文乱码问题以及编码转换
解决Linux文档显示中文乱码问题以及编码转换 解决Linux文档显示中文乱码问题以及编码转换 使vi支持GBK编码 由于Windows下默认编码是GBK,而linux下的默认编码是UTF-8,所以打 ...
- jdbc 读取oracle long raw 字段,里面存的是文本
jdbc 读取oracle long raw 字段,里面存的是文本 参考: http://singlewolf.iteye.com/blog/278769 http://blog.csdn.net/r ...
- yii2: oracle汉字占用字节长度
OCIStmtExecute: ORA-12899: value too large for column "WSG"."WX_ENTER_TASTE".&qu ...
- oracle汉字占用字节长度
1. 今天调查一个oracle数据库问题的时候,发如今11g中一个汉字占2个字节,在10g中占3个字节.导致将11g数据库中的数据导入到10g的时候总是出错.開始的时候还以为是11g和1 ...
- Java底层代码实现单文件读取和写入(解决中文乱码问题)
需求: 将"E:/data/车站一次/阿坝藏族羌族自治州.csv"文件中的内容读取,写入到"E:/data//车站一次.csv". 代码: public cla ...
- centos中文乱码修改字符编码使用centos支持中文
如何你的centos显示中文乱码,只要修改字符编码使centos支持中文就可以了,没有这个文件可以创建它,下面是修改步骤 一.中文支持 安装中文语言包: 复制代码 代码如下: yum groupins ...
- maven构建项目时硬编码中文乱码问题解决
场景:1. 项目采用maven作为构建工具.2. 前端页面为jsp,由前端团队独立完成,添加编码配置:<%@ page contentType="text/html;charset=u ...
- SpringBoot 读取properties配置文件 @Value使用 中文乱码问题
一,idea中配置文件中文乱码问题 使用idea开发,读取properites配置文件 配置: #app 菜单 #没有限制,所有人都可访问的菜单 menu.unlimited=订单审批,现场尽调,合作 ...
随机推荐
- amazeui页面分析5
amazeui页面分析5 一.总结 1.把原模板当成样例集合就好 2.都是一块一块的,删改等操作都方便 3.list方面的操作很多都是ui配合li 4.其实容器本质还是div,所以真的算简单了 5.样 ...
- 【习题 5-9 UVA - 1596】Bug Hunt
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] map模拟 map<string,int>记录每个数组的大小 map <pair<string, int&g ...
- MVC模式编程演示样例-登录验证(静态)
好,上篇博客分享了本人总结的JSP-Servlet-JavaBean三层架构编程模式的实现思想和基本流程,接下来给大家分享一个MVC编程模式的实现演示样例-登录验证的过程,这里我仍然用的是静态的验证u ...
- storm原理介绍
目录 storm原理介绍 一.原理介绍 二.配置 三.并行度 (一)storm拓扑的并行度可以从以下4个维度进行设置: (二)并行度的设置方法 (三)示例 四.分组 五.可靠性 (一)spout (二 ...
- 与Eclipse关于"Call Hierarchy"和"Find Reference"功能比较
"Call Hierarchy"功能比较 Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员变量的调用树(caller和calle ...
- 小米笔记本(13.3 I7) ubuntu14.04下网卡驱动安装
ubuntu 内核升级到4.6.4(更高版本可能造成系统无法启动) kernel debian包下载地址 http://kernel.ubuntu.com/~kernel-ppa/mainline/v ...
- matlab 正则表达式
regexprep Replace text using regular expression collapse all in page Syntax newStr = regexprep(str,e ...
- AE开发概念辨析
樱木 原文 AE开发之概念辨析2,AE开发涉及相关概念,AE开发相关概念 1 AE中的类库 AE总共包括了21个子库,分别是SYSTEM,SYSTEMUI,GEOMETRY,DISPLAY,SERVE ...
- angular之Http服务
原文 https://www.jianshu.com/p/53e4a4bfad7d 大纲 1.什么是angular服务 2.服务的类别 3.认识angular的Http请求 4.简单实例 5.angu ...
- bash - Logical_OR
转载 https://bash.cyberciti.biz/guide/Logical_OR Logical OR ← Logical AND Home Logical Not ! → Logic ...