本文目录一览:
- 1、java oracle如何统一编码,中文乱码
- 2、oracle数据库编码会影响java程序编码么
- 3、java读取oracle数据库里面的数据生成xml文件,生成的xml文件出现乱码怎么解决
- 4、oracle 8i, 字符集为US7ASCII,java 取汉字乱码,怎么处理,求高手解答!
- 5、java查询ORACLE数据乱码,不能转码什么原因
java oracle如何统一编码,中文乱码
首先查看数据库编码:
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
这个编码是否和你java的编码一致,如果不一致,建议先尝试修改java的编码,如果java编码不能改变,而且你有修改oracle码制的权限,并且可以修改(慎用!)
例如目前数据库环境的字符集是AL32UTF8,那么把它改成ZHS16GBK
1.首先以sysdba的身份登录上去 conn /as sysdba
2.关闭数据库shutdown immediate;
3.以mount打来数据库,startup mount
4.设置session
SQLALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL ALTER SYSTEM SET AQ_TM_PROCESSES=0;
5.启动数据库
alter database open;
6.修改字符集
ALTER DATABASE CHARACTER SET ZHS16GBK;
这会可能会报错,提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
这条语句就可以了,TERNAL_USE提供的帮助就会使oracle绕过了子集与超集的验证,这条语句和上面的语句内部操作时完全相同的。
7.关闭,重新启动
SQLshutdown immediate;
SQL startup
当然字符集最好不要轻易修改,因为这会对数据库的数据有直接的影响,如果是生产环境的话,可能会造成不可估计得损失。
oracle数据库编码会影响java程序编码么
不会的,这是2个程序,oracle只是存取数据,而java程序编码通常用MyEclipse之类的工具,互相没有什么太大的影响,当然如果数据库存入的是乱码,JAVA程序取出来也是一样的会乱码。
java读取oracle数据库里面的数据生成xml文件,生成的xml文件出现乱码怎么解决
跟踪问题所在:
1、查询一下数据库,判断在数据库中的时候,是否是已经存在了乱码。
2、在读取到Java的时候,你用SystemOut输出一下,判断这个时候,是否是乱码。
3、写入到xml文件的时候,XML中是否是乱码。
如果是1种情况出现乱码,则是写入数据库的时候出现乱码,需要更改写入程序的代码。
如果是2种情况出现乱码,则是读取Oracle的字符集出现错误,设置读取的字符集。
如果是3种情况出现乱码,则是在Java类中写入的时候,设置字符集,查看数据库字符集,设置为UTF-8、或者是GBK字符集。
希望对你有帮助。
oracle 8i, 字符集为US7ASCII,java 取汉字乱码,怎么处理,求高手解答!
由于数据是以一个个字节的方式读进去的的,一个汉字2个字节,是分2次读进去的的,如果你指定了byte数组的大小,但是长度为奇数,则乱码;即使你没有指定数组大小,也会乱码。最好的方式就是将全部输入的数据暂时放到一块内存中,然后一次性从内存中读取数据,这就要使用BufferedReader类来完成!希望你能够明白!
java查询ORACLE数据乱码,不能转码什么原因
首先你要清楚乱码的原因,就是存储和读取的编码不一致导致的。
你存储的编码是US7,读的时候用GBL,肯定会乱码
我觉得US7的编码本身就不支持中文,是否应该修改oracle数据库的配置呢
客户端字符集不一定是要和服务器端字符集一致。Oracle的客户端会自动转换。但是这种转换必须是可行的。例如服务器端是UTF8,客户端是ZHS16GBK就可以,因为UTF8能够描述的字符集是ZHS16GBK的全集。
反过来,如果服务器端是US7ASCII客户端是ZHS16GBK就不可以!