已结贴√
问题点数:20 回复次数:7
request.getParameter取textarea中文乱码问题
--%>
//得到一个数据库的连接
Connection getConnection() throws SQLException
{
//定义驱动程序
String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//定义连接的数据库
String CONNSTR="jdbc:sqlserver://localhost:1433;DatabaseName=XDCTY";
String userName="sa";
String userPwd="wplmj9*";
try{
Class.forName(DBDRIVER);
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace(System.err);
}
//return DriverManager.getConnection(CONNSTR,userName,userPwd);
return DriverManager.getConnection(CONNSTR,userName,userPwd);
}
//判断一个字符串是否为空
boolean isEmptyString(String str)
{
return str==null || str.length()==0||str.trim().length()==0;
}
%>
--%>
资源宝(自定义查询)TD,INPUT,SELECT{FONT-SIZE:12px}
function checkvalue()
{
if(document.forms("main").sql.value.length==0)
{
alert("请输入要执行的SQL语句");
document.fors("main").sql.focus();
return false;
}
}
资源宝(自定义查询)
请输入要执行的SQL语句 |
οnsubmit="return checkvalue();">
//获得用户输入的SQL语句——就是下面这两行错误。
String sql=request.getParameter("sqlA");
sql=new String(sql.getBytes("ISO-8859-1"),"UTF-8");
//sql = new String(sql.getBytes("iso-8859-1"),"UTF-8");
// String sql = (request.getParameter("sqlA"),"UTF-8");
if(!isEmptyString(sql))
{
out.println("您所执行的SQL语句为:"+sql+"
");
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try
{
conn=getConnection();
st=conn.createStatement();
if(st.execute(sql))
{
//执行结果为ResultSet()
rs=st.getResultSet();
//得到ResultSet的列数目
ResultSetMetaData rsmd=rs.getMetaData(); ///得到结果集的结构信息,比如字段数、字段名等
int nColumnCount=rsmd.getColumnCount(); //返回字段个数
out.println("您的查询结果为:
");
out.println("
out.print("
");for(int i=1;i<=nColumnCount;i++)
{
out.println("
"+rsmd.getColumnName(i)+""); //getColumnName得到列名}
out.println("
");while(rs.next())
{
out.println("
");for(int i=1;i<=nColumnCount;i++)
{
out.println("
"+rs.getString(i) +"");}
out.println("
");}
}
else
{
//执行结果为正数
out.println("更新记录的数目为:"+st.getUpdateCount());
}
}
catch(SQLException ex)
{
out.println(ex);
}
finally
{
//关闭、释放资源
try
{
if(rs!=null)
rs.close();
}catch(Exception ex){}
try{
if(st !=null)
st.close();
}
catch(Exception ex){}
try{
if(conn !=null)
conn.close();
}
catch(Exception ex){}
}
}
%>
————————本人在server.xml中配置了 URIEncoding="utf-8",如下配置:
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
之前调试是可以的,但今天再用发现request.getParameter取textarea里面的中文时,中文是乱码问题