db2 jdbc 连接池_jdbc连接db2后getString("XXX")出来的字符串是乱码

在使用jdbc连接DB2数据库时遇到字符串乱码问题,尽管尝试了多种字符集转换方式,如从iso-8859-1到GB2312,但结果始终未能正确显示。数据库配置为领土CN,代码页1386,代码集GBK,国家/地区代码86。源代码中包含数据库连接、查询和结果处理,但无法正常解码字段brand_name。寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jdbc连接db2(DB2 v8.1.1.60)后getString("XXX"出来的字符串是乱码,无论我怎么转换,都是乱码,

我的数据库配置:

Database territory                                      = CN

Database code page                                      = 1386

Database code set                                       = GBK

Database country/region code                            = 86

下面是源代码,有能力人士帮忙解答,谢谢:

import java.io.UnsupportedEncodingException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class NewData {

/**

* @param args

*/

public static void main(String[] args) {

NewData d = new NewData();

System.out.println(d.exec());

}

private String getObj(String ret)

{

//return new String(o.getBytes("iso-8859-1", "GB2312";

String value="";

try {

value=new String(ret.getBytes("iso-8859-1","gb2312";

//上面这个地方无论怎么换都不行

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return value;

}

private boolean exec()

{

boolean f=true;

Connection conn = getConn();

Statement stmt=null;

ResultSet rs=null;

try {

stmt=conn.createStatement();

String sql="select * from dcx.d_billcode fetch first 5 rows only";

rs=stmt.executeQuery(sql);

while(rs.next())

{

System.out.println(getObj(rs.getString("brand_name&quot

);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

f=false;

}

finally

{

if(null!=rs)

try {

rs.close();

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if(null!=stmt)

try {

stmt.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if(null!=conn)

try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return f;

}

private Connection getConn() {

Connection conn = null;

try {

Class.forName("COM.ibm.db2.jdbc.app.DB2Driver".newInstance();

String user = "xxxx";

String password = "xxxx";

String url = "jdbc:db2xx";

conn = DriverManager.getConnection(url, user, password);

} catch (Exception e) {

e.printStackTrace();

conn = null;

}

return conn;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值