""字的显示问题

系统环境:
Oracle 10.2 字符集SIMPLIFIED CHINESE_CHINA.ZHS16GBK
jvm 字符集:GBK
该程序在SUN的JRE下运行正常,在IBM JRE下运行结果不正确“”显示为“?”

/**
 * Create on 2010-7-14
 * Copyright 2009 startech. All rights reserved.
 */
package com;

import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author test
 *
 */
public class TestJdbc {

/**
* @param args
*/
public static void main(String[] args) {
TestJdbc test = new TestJdbc();
try {
test.testJdbc();
} catch (Exception e) {
e.printStackTrace();
}

}
private void testJdbc() throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@xx.xx.xx.xx:1521:orcl";
Connection connection = DriverManager.getConnection(url, "test",
"test");
Statement statement = connection.createStatement();
ResultSet resultSet = statement
.executeQuery("select name from users where id = '000000000'");
while (resultSet.next()) {
String nameString = resultSet.getString("name");
System.out.println(nameString);
byte[] bytes = nameString.getBytes();
for (byte b : bytes) {
System.out.print(b);
}
System.out.println();
}
System.out.println("当前JVM的默认字符集:" + Charset.defaultCharset());
}
}


运行结果:
dbc
张?
-43-5963
当前JVM的默认字符集:GBK

oracle数据库记录:
SQL> select *from users;

ID NAME
----------- --------------------
000000000 张

“”在JVM中有两个编码19886和59491,19886可以在页面显示,但保存到数据库为乱码,59491可以保存到数据库中,但显示为乱码。且如果把页面字符集改为gb18030,则页面会随机出现乱码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值