一个java问题?连接mysql数据库查表问题?

try{
String a="书";
con1DriverManager.getConnection(url,"root","");
stmt1=con1.createStatement();
rs1=stmt1.executeQuery("SELECT * FROM book_info where Father_name='" +a+"'");

while(rs1.next()){
Book_name=rs1.getString("Book_name");
parent=new DefaultMutableTreeNode(Book_name);
}
} catch(SQLException e1) {}
查找不出来,可是数据库里有记录,但是换成"Book"英文的就可以,所有的中文都不成,英文的都可以而且运行正常。
我做的是Swing,用记事本做的,我现在应该怎么做呀?
我打开数据库显示的是中文,我的搜索条件在我的程序里也是从数据库中提取的,而且在Textfield显示的是中文而且正常,不是乱码?但是如果在记事本上直接负值a="书"就是乱码?不知道是什么问题?

第1个回答  2009-10-16
这跟记事本的编码方式有关,,除非你在保存记事本文本文件时候选择了其他编码方式,否则用记事本录入的字符信息将使用GBK编码进行储存。而你的显示页面jsp 是utf-8和数据的字符集要是别的,就会由于不一致,导致乱码。换一个编辑软件好了,用UE挺好的,我一直在用,而且有关键字的高亮显示,帮你检查拼写导致的关键字错误。
第2个回答  2009-10-16
这和编码有一定的关联,也就是说,你在存储时,要看下你的编码方式,操作时也要看清楚。一定要保持统一。

有个小建议。就是另写一个类,是将汉字编码格式转换的问题。每次只要是汉字,你就调用这个,这样可以做到统一。不懂的请在Hi我就行了

参考资料:如果您的回答是从其他地方引用,请表明出处

第3个回答  2009-10-16
把你这段代码所在的文件编码改成UTF-8

你用的是记事本的话
保存的时候最下面有个编码
选择成UTF-8
第4个回答  2009-10-16
保存记事本的时候选择编码方式。别采用系统默认的。
第5个回答  2009-10-16
打开记事本,文件--另存为--编码--UTF-8
相似回答