str = new String(str.getBytes("GBK"), "ISO-8859-1"); 换一下试试!
试了一下,至少在在application中将中文添加到access是没有问题的。
为什么要转码???????????????? 引用 =============== str = new String(str.getBytes("ISO-8859-1"), "GBK"); =================不用转的伙计,不该转的你转了反而搞地乱码。
to all: 我就是不加那个转码也不行 str = new String(str.getBytes("ISO-8859-1"), "GBK"); 一开始不用后来不行 才加上的,现在是用不用都不行!!!
to hj12(12): 问题解决了,当把str = new String(str.getBytes("GBK"), "ISO-8859-1");这样写时就可以了,存入数据库的就是中文。我是这样认为的preparedstatement对sql进行预编译,如果对中文不进行处理转换成iso-8859-1,与编译是就会出错,可能数据库不认识预编译后的中文,所以会出错。好像数据库的默认编码就是is0-8859-1,所以要先把中文转化成iso在进行编译处理存入数据库就可以了!! 如果是statement不用转换直接就可以,但是preparestatement就不行!还是与数据库有关呢??思索中。
换一下试试!
引用
===============
str = new String(str.getBytes("ISO-8859-1"), "GBK");
=================不用转的伙计,不该转的你转了反而搞地乱码。
我就是不加那个转码也不行
str = new String(str.getBytes("ISO-8859-1"), "GBK");
一开始不用后来不行
才加上的,现在是用不用都不行!!!
问题解决了,当把str = new String(str.getBytes("GBK"), "ISO-8859-1");这样写时就可以了,存入数据库的就是中文。我是这样认为的preparedstatement对sql进行预编译,如果对中文不进行处理转换成iso-8859-1,与编译是就会出错,可能数据库不认识预编译后的中文,所以会出错。好像数据库的默认编码就是is0-8859-1,所以要先把中文转化成iso在进行编译处理存入数据库就可以了!!
如果是statement不用转换直接就可以,但是preparestatement就不行!还是与数据库有关呢??思索中。