问题描述
在进行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不描述的详细点,别人不好帮你看问题的