当前位置: 技术问答>java相关
请问:如何实现在jsp页面中往数据库中添加中文记录!
来源: 互联网 发布时间:2015-06-19
本文导语: 我现在添加的中文记录,再在jsp页面页面取出时出现乱码,但在dos环境下添加的中文记录没问题。请问该如何解决!谢谢! 例如:String sql=insert into list_name(id,name) values('100001','中文'); dbaccess.statement.executeQu...
我现在添加的中文记录,再在jsp页面页面取出时出现乱码,但在dos环境下添加的中文记录没问题。请问该如何解决!谢谢!
例如:String sql=insert into list_name(id,name) values('100001','中文');
dbaccess.statement.executeQuery(sql);
例如:String sql=insert into list_name(id,name) values('100001','中文');
dbaccess.statement.executeQuery(sql);
|
请你看看你的库中的中文是不是乱码?如果不是乱码则不用转换。只要在jsp中加:
如果是乱码,则应在insert数据之前就要转换。
这个问题说了不知多少次了。请你们在问此问题时在论坛里先搜索一下。
拜托了。
如果是乱码,则应在insert数据之前就要转换。
这个问题说了不知多少次了。请你们在问此问题时在论坛里先搜索一下。
拜托了。
|
通过字符串添加,用getbyte操作。
public static String getStr(String str){
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e){ System.out.println("Error:"+e.getMessage());
}
return "NULL";
}
调用的时候
publicTools.getStr(request.getParameter("id"))//接受表单提交的数据
你可以用String s = publicTools.getStr('中文');
public static String getStr(String str){
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e){ System.out.println("Error:"+e.getMessage());
}
return "NULL";
}
调用的时候
publicTools.getStr(request.getParameter("id"))//接受表单提交的数据
你可以用String s = publicTools.getStr('中文');
|
我用tomcat4+sqlserver,插入中文没有问题。
多弄点错误调试信息看看。
下面是我用的insert代码,你改改表名和参数,在试试:
public String insertRecord(String title, String author, String content, int fatherId, String link, String email)
throws SQLException {
String sql;
byte[] temp = {1};
int authorId = 3;
sql = "insert into post (title, author, content, fatherid) values ('";
sql += title + "', '" + author + "', '" + content + "', '" + fatherId + "')";
try {
temp = sql.getBytes("iso-8859-1");
}catch (UnsupportedEncodingException e) {
return ("Chinese handling failed: "+e.toString());
}
Statement s = null;
String sqlCstr = new String(temp);
int affectedRow = 0;
try {
if (conn == null) {
DBConnect();
}
if (conn == null) {
return ("could not establish conn");
}else {
s = conn.createStatement(scrollType, concurType);
affectedRow = s.executeUpdate(sqlCstr);
s.close();
}
}catch (SQLException e) {
return ("access db error:"+e.toString() +", affectedRow = "+affectedRow+", sqlCstr="+sqlCstr+"");
}
return ("insert successfully, affectedRow = "+affectedRow+", sqlCstr="+sqlCstr);
}
多弄点错误调试信息看看。
下面是我用的insert代码,你改改表名和参数,在试试:
public String insertRecord(String title, String author, String content, int fatherId, String link, String email)
throws SQLException {
String sql;
byte[] temp = {1};
int authorId = 3;
sql = "insert into post (title, author, content, fatherid) values ('";
sql += title + "', '" + author + "', '" + content + "', '" + fatherId + "')";
try {
temp = sql.getBytes("iso-8859-1");
}catch (UnsupportedEncodingException e) {
return ("Chinese handling failed: "+e.toString());
}
Statement s = null;
String sqlCstr = new String(temp);
int affectedRow = 0;
try {
if (conn == null) {
DBConnect();
}
if (conn == null) {
return ("could not establish conn");
}else {
s = conn.createStatement(scrollType, concurType);
affectedRow = s.executeUpdate(sqlCstr);
s.close();
}
}catch (SQLException e) {
return ("access db error:"+e.toString() +", affectedRow = "+affectedRow+", sqlCstr="+sqlCstr+"");
}
return ("insert successfully, affectedRow = "+affectedRow+", sqlCstr="+sqlCstr);
}