java程序从access 数据库读取出来的是乱码,请教高手解决
2个回答
展开全部
byte[] bts=null;
String other = null;
bts = rs.getBytes(i); //读取other字段
if(bts != null)
{
other = new String(bts,"gbk");
}
Access数据库必须先一beyet取出来然后进行转码
这个问题我今天解决了
但是我还有个问题,当表名为中文时,查询会出问题,还有列名为中文时取出来的列名也是乱码。帅哥你知道怎么解决这问题不
String other = null;
bts = rs.getBytes(i); //读取other字段
if(bts != null)
{
other = new String(bts,"gbk");
}
Access数据库必须先一beyet取出来然后进行转码
这个问题我今天解决了
但是我还有个问题,当表名为中文时,查询会出问题,还有列名为中文时取出来的列名也是乱码。帅哥你知道怎么解决这问题不
追问
谢谢你哈 我待会按照你给的那个方法去实现以下
你说的那个我也不懂 以前查过,他们给的答案都是两种环境的底层编码不一致,access本身的编码好像是gbk的,那个java的好像是unicode的编码格式 是不是本身这两种就不一样,所以列名中文自然会出现乱码??有木有这种情况呢 因为我现在的实现是J2EE有关的嘛 而且我感觉我的编码与我安装的tomcat有关 可能吧 具体就不清楚 ,,他在处理jsp的javabean时 就会原文显示中文乱码
追答
我那个已经解决了 ,
在链接数据库的的时候就设置编码格式就可以了,Access默认一般都是GB2312的编码格式所以这里设置的编码格式为GB2312
代码 Properties pro = new Properties();
pro.setProperty("charSet","GB2312");
conn = DriverManager.getConncetion(url,pro);
代码是手动在这里敲的可能有些方法会有错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询