0 0

读取数据库 乱码问题5

连接的数据库是access
		Statement st=null;
		ResultSet rs =null;
				try { 
					st=conn.createStatement();
					rs= st.executeQuery("select * from B01 where 1=1 ");
					ResultSetMetaData   rsmd = rs.getMetaData();
					int   count = rsmd.getColumnCount();
					System.out.println(count);
					for(int i = 1;i<=count; i++){   
						String colName;
						try {
							colName=rsmd.getColumnLabel(i);//这里出现乱码了,试了很多方法都不行
						   System.out.println(colName);  
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				} catch (SQLException e) {
					e.printStackTrace();
				}

得到的colName是乱码,试了getBytes()不行

问题补充:
AngelAndAngel 写道
还有 你数据库表里面是乱码吗

数据库里的不是乱码

问题补充:
AngelAndAngel 写道
 try {
			colName=new String(colName.getBytes("iso-8859-1"),"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

假如还有乱码,你把这几个参数不停的变换一下比如gbk,gb2312什么的。你试试。

都试了,不行啊

问题补充:colName是字段名(数据库里的字段是中文)

问题补充:
AngelAndAngel 写道
连接语句贴一下

驱动:sun.jdbc.odbc.JdbcOdbcDriver
url:jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=G:\WorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\archive\WEB-INF\olddb\Az.mdb
DAO 
2011年10月14日 18:21

9个答案 按时间排序 按投票排序

0 0

采纳的答案

在连接里面指定charSet,
JdbcOdbcDriver中获得连接

public synchronized Connection connect(String s, Properties properties)
        throws SQLException

properties里面指定charSet。
默认的charSet是
properties.getProperty("charSet", System.getProperty("file.encoding"));

2011年10月15日 12:30
0 0

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class ConnectAccess {
    public void ConnectAccessFile() throws Exception {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
        /**
         * 直接连接access文件。
         */ 
        Properties info = new Properties();
        info.setProperty("charSet","GB2312");
        info.setProperty("user", "cms");
        info.setProperty("password", "cms");
        String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=G://cms.mdb";
        Connection conn = DriverManager.getConnection(url, info);
       
        Statement stmt = conn.createStatement(); 
        ResultSet rs = stmt.executeQuery("select * from DEMO_USER"); 
        while (rs.next()) { 
            System.out.println(rs.getString("du_id"));
            System.out.println(rs.getString("du_name"));
            System.out.println(rs.getString("du_account"));
            System.out.println(rs.getString("du_password"));
        } 
        rs.close(); 
        stmt.close(); 
        conn.close();
    }

    public static void main(String args[]) throws Exception { 
        ConnectAccess ca = new ConnectAccess(); 
        ca.ConnectAccessFile();
    }
}

2016年12月04日 11:41
0 0

你把数据编码格式改成gbk 或者utf-8

2011年10月16日 09:50
0 0

看看你数据库,本身存的数据是不是乱码?关于乱码,要弄清:是存进去就变成乱码(数据库存的就是乱码),还是取出来就是乱码(存的数据不是乱码,但是取出来就乱码)啊,解决方格式法很多:1.Jar包不兼容   2.需要转码  3.数据库连接字符串,后面加编码

2011年10月15日 20:30
0 0

你myeclipse编码和数据库格式统一,就好了

2011年10月14日 21:28
0 0

http://www.iteye.com/problems/60888
确实不太好解决。再找找其他方法。

2011年10月14日 19:27
0 0

连接语句贴一下

2011年10月14日 19:09
0 0

还有 你数据库表里面是乱码吗

2011年10月14日 18:38
0 0

 try {
			colName=new String(colName.getBytes("iso-8859-1"),"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

假如还有乱码,你把这几个参数不停的变换一下比如gbk,gb2312什么的。你试试。

2011年10月14日 18:38

相关推荐

    asp access 数据库乱码问题

    标题“asp access 数据库乱码问题”提示我们,问题出在使用ASP与Access数据库交互时,中文数据出现了乱码。这可能是由于以下原因: 1. **字符集不兼容**:Access数据库可能使用了不同的字符集(如UTF-8或GBK),而...

    oracle数据库乱码问题解决

    ### Oracle数据库乱码问题解析与解决方案 #### 一、Oracle数据库乱码问题概述 在使用Oracle数据库的过程中,可能会遇到字符显示异常的问题,通常被称为“乱码”。这种情况会影响到数据的正确读取与处理,进而影响...

    C#连接Sybase数据库,并解决C#读取Sybase乱码的问题

    4,乱码问题:sybase使用latin1字符集的时候,c#中读取字符串会是乱码,进行如下转换就行: System.Text.Encoding.GetEncoding("gbk").GetString( System.Text.Encoding.GetEncoding("latin1").GetBytes( s );

    vs自带数据库sql server的中文插入乱码问题、查找当前数据库名

    解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...

    ubuntu下读取数据库中文乱码解决.docx

    但是,这也意味着我们需要在每次读取数据库时都执行这句语句,否则就会出现乱码问题。 因此,我们可以通过配置 MySQL 的配置文件来解决这个问题。我们可以在 `/etc/mysql/mysql.conf.d/mysql.cnf` 文件中添加以下...

    解决数据库存取乱码问题

    在IT领域,数据库存取乱码问题是一个常见的挑战,尤其对于多语言支持或者涉及中文字符的应用来说。这个问题可能出现在多种场景下,如数据输入、查询显示或者导出时。为了解决这一问题,我们需要深入理解字符编码原理...

    JSP存到数据库乱码解决办法

    这样可以确保从数据库读取或写入的数据都是按照UTF-8编码进行的,从而避免乱码问题。 #### 3. 总结 通过以上配置,我们可以有效地解决JSP项目中常见的乱码问题。需要注意的是,为了避免各种字符集不匹配导致的问题...

    Qt5读取access数据库中文乱码

    Qt5读取access数据库中文乱码 问题地址:http://bbs.csdn.net/topics/390992221

    hibernate数据库中文乱码问题

    ### Hibernate数据库中文乱码问题详解 #### 背景与问题描述 在使用Hibernate框架进行数据库操作时,可能会遇到中文乱码的问题。特别是在使用MySQL作为数据库,并且已将数据库编码设置为`utf-8`的情况下,依然出现...

    UDK连接SQLite数据库的dll(已修正读取中文乱码问题)

    UDK连接SQLite数据库,获取数据库中的中文时会产生乱码,这个Dll在原始C++工程的UDKProjectDLL中代码中修改过,加入了转码的函数,解决了中文读取乱码的问题。

    数据库乱码的处理

    ### 数据库乱码的处理与Java正则表达式的应用 #### 一、引言 在进行Web开发过程中,经常会遇到数据库中的数据出现...通过综合运用以上方法,我们可以有效地预防和解决数据库乱码问题,提高系统的稳定性和用户体验。

    QT读取access是数据库表名中文乱码

    总的来说,处理QT访问Access数据库时出现的中文乱码问题,需要从编码设置、驱动版本、连接字符串等多个方面综合考虑。理解这些知识点并应用适当的解决方案,可以有效地解决这类问题,提高QT应用程序的跨平台数据库...

    java读sqlite数据库到JTable(解决sqlite中文乱码问题).docx

    Java 读取 SQLite 数据库到 JTable 中并解决中文乱码问题 Java 是一种流行的编程语言,它广泛应用于各种领域,包括移动设备、Web 开发、桌面应用程序等。SQLite 是一种轻量级的关系数据库管理系统,它广泛应用于...

    mysql 数据库乱码处理

    MySQL 数据库乱码处理 MySQL 数据库字符乱码问题是数据库管理中常见的问题之一。造成乱码的原因多种多样,可能是由于数据库...通过以上步骤,我们可以将 MySQL 数据库乱码问题解决,并且能够正确地读取和写入数据。

    MySQL乱码解决方案数据库乱码

    在处理MySQL数据库时,遇到字符集编码不一致导致的数据乱码问题非常常见。这不仅会影响数据的正确显示,还可能导致数据丢失或损坏。根据提供的标题、描述、标签以及部分内容来看,本文将围绕MySQL乱码问题进行深入...

    数据库乱码解决.txt

    本文将针对数据库乱码问题,提供一系列解决方案,并通过Java编程语言来具体实现这些方案。 #### 二、乱码产生的原因 乱码问题通常是由字符集设置不一致造成的。例如,在Java应用中,如果前端传入的数据字符集与...

Global site tag (gtag.js) - Google Analytics