jdbc在读取access数据库中中文数据时出现的字符长度错误问题

问题描述

在进行java连接access数据库进行读取数据的时候原有数据限制了长度为varchar(12)在officeaccess界面直接输入了12个中文汉字但是在读取进入java后变成了原来的一半java工程字符集配置是utf-8在读取的时候设置了连接的参数字符集为GBK将java项目字符集改成GBK同样会出现这个问题请问一下有没有人知道为什么会出现这种情况并且如何解决注:同样条件下mysql就没有问题是不是access记录在写的时候按中文的字符长度算的在读取到java后按照字节的长度算的所以少了一半?在线等高手

解决方案

解决方案二:
没人懂吗????
解决方案三:
把怎么读的代码贴出来看看吧比如:publicstaticvoidConnectAccessFile()throwsException{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Stringdbur1="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=F://test.mdb";Connectionconn=DriverManager.getConnection(dbur1);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery("select*fromtest");while(rs.next()){Stringstr=rs.getString(2);System.out.println(str);}rs.close();stmt.close();conn.close();}

解决方案四:
你可以试试输入12个字母应该是可以的,而6个汉字正好占用12个字母的存储空间。
解决方案五:
现在问题是数据库那边能输入12个中文读取到java变成了6个同样的问题mysql就不存在同样限制了varchar(12)mysql能写入12个中文也能读取12个中文
解决方案六:
没人懂么么么么
解决方案七:
前面不是写了吗?我access数据库中输入12个中文,然后我在java中读出来的也是12个中文没有出现你说的输入12个中文,只读出6个,是不是哪边写的和你不一样?java编码是GBK不描述的详细点,别人不好帮你看问题的

时间: 2024-10-28 23:23:01

jdbc在读取access数据库中中文数据时出现的字符长度错误问题的相关文章

java-当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?

问题描述 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 怎么才能解决问题,跟jdbc driver Manager的设置有关系吗? 解决方案 数据库字符集 与 页面编码 都使得 是 uft-8?得统一 解决方案二: 建议编码格式采用UTF-8的格式 解决方案三: 在使用数据的每一个节点上,其编码方式必须要一致否则就会出现乱码.特别是使用MySQL时,客户端,连接器.数据库

asp中网access数据库中插入数据乱码

问题描述 asp中网access数据库中插入数据乱码 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> meta http-eq

求C#代码!!关于从Excel表中将数据导入Access数据库,以及Access数据库中的数据导出到Excel表的代码。急!!!晚上就得交差啊

问题描述 我需要从Excel表中将数据导入Access数据库,以及Access数据库中的数据导出到Excel表的代码,越具体越好!!望各位高手能不吝赐教 解决方案 解决方案二:不会吧?难道世间真的是如此残忍?为什么没人理我啊?高手们,算小弟我求你们了!难道是分不够多吗?初出江湖实在是身无分文啊----就不要太在意这个了,好不好啊?给我写写吧,万分感谢了!!解决方案三:这里是利用officeapplication方式来操作excel的http://blog.csdn.net/fangxinggoo

jsp-JSP向数据库中插入数据时显示全都是问号,怎么能解决一下啊?

问题描述 JSP向数据库中插入数据时显示全都是问号,怎么能解决一下啊? 插入中文就显示问号,数据库里是空白,这是为什么啊,怎么解决呢 解决方案 jdbc:mysql://127.0.0.1:3306/yourdb?useUnicode=true&characterEncoding=UTF8″ 类似这个,修改下编码字符. 解决方案二: 如果用的是mysql就在网上查一下如何修改数据库编码就可以了: 如果回答对您有帮助,请采纳 解决方案三: 这是编码格式问题,转换一下文字编码就行了.比如: 已有字符

mysql-再往数据库中添加数据时,起初可以添加进去,之后不知道是把电脑关了还是怎么老报错,而且添加不进去了

问题描述 再往数据库中添加数据时,起初可以添加进去,之后不知道是把电脑关了还是怎么老报错,而且添加不进去了 Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if

sqlite删除数据库中的数据时偶尔会出现错误

问题描述 sqlite删除数据库中的数据时偶尔会出现错误 java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed. 求助,connection pool 是啥啊,求大神指教. 解决方案 如果确定不是连接被关闭,那还有可能就是多线程访问sqlite,sqlite数据库是单线程操作的,那么当N多个Thread同时调用的时候,可能报这错误.这也就

ASP.NET(VB)向Access数据库中插入数据错误...

问题描述 PrivateSubclick(ByValsenderAsObject,_ByValeAsSystem.EventArgs)Dimstrconn,strsqlAsStringDimmyconnAsOleDbConnectionaddress.Text=Replace(address.Text,Chr(39),"&apos;")DimcmdAsOleDbCommandstrconn="Provider=Microsoft.Jet.OLEDB.4.0;DataS

通过jdbc-odbc往Access数据库中OLE类型的表中插入数据的例子

/***说明:*通过jdbc-odbc往Access数据库中插入图片.或者乱七八糟的文件都行*注意,用DataInputStream会出错*/import java.sql.*;import java.io.FileInputStream;public class sss{   public static void main(String args[])   {     try     {        //连接ACCESS数据库,这里用了连接串哦         Class.forName("

ASP.NET 2.0中随机读取Access数据库记录

[导读]由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",将得不到随机记录,本文中给出的例子可以克服这一缺陷,实现数据库的随机读取. 由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Or