还是一个中文显示乱码的问题
package message;
import java.sql.*;
public class Db{
Connection conn;
User user;
public static String trans(String chi)
{
String result = null;
byte temp [];
try
{
temp=chi.getBytes( "iso-8859-1 ");
result = new String(temp);
}
catch(Exception e)
{
e.printStackTrace();
}
return result;
}
public Db(){
try{
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
conn=DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;databaseName=Test ", "Test ", "Test ");
}catch(Exception e){
e.printStackTrace();
}
}
public void setUser(User user){
this.user=user;
}
public void insert(){
try{
PreparedStatement pstmt=conn.prepareStatement( "insert into user1 values(?,?) ");
pstmt.setString(1,trans(user.getName()));
pstmt.setString(2,user.getPassWord());
pstmt.executeUpdate();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
jsp调用该Javabean将说提交的数据插入数据库.还有一个User.java是封装了name和password数据.再上面的javabean中,插入数据库前,已经用getBytes( "iso-8859-1 ")重新编码过,为什么在数据库里还是乱码?还有,如果在数据库里是乱码,取出后一定是乱码?有办法解决吗?
------解决方案--------------------你采用的是数据库预处理技术,但是在执行数据库插入操作的时候不能用预处理,如果用了预处理,插入的数据就会变成乱码,所有只有写成Statement stmt=conn.createStatement();
后面的我就不写了 相信你也会
执行插入操作的时候只能用一般的形式进行插入,在javabean里面也是一样
------解决方案--------------------添加struts 代码过滤器。配置xml文件。。页面上的加一句 <meta http-equiv= "Content-Type " content= "text/html; charset=GBK ">