<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="test.jsp">
a<textarea rows="" cols="" name="area"></textarea>
<input type="submit">
</form>
<%
String s=new String((request.getParameter("area");
%>
<%=s%>
</body>
</html>
上面页面提交中文时,出现乱码,怎么改都有问题,费好大劲,试来试去的,最后把上面红色部分改成以下代码,问题解决,汗!
String s=new String((request.getParameter("area")).getBytes("ISO8859_1"),"gb2312");
如果提交上来的参数打印出来为????号,那么再获得参数后,设置编码: request.setCharacterEncoding("gb2312");
补充说名:关于解决编码问题工具代码:
public class ChStr {
public static String toChinese(String strvalue) {
try {
if (strvalue == null) {
return "";
} else {
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK").trim();
return strvalue;
}
} catch (Exception e) {
return "";
}
}
//处理字符串中的空值
public static final String nullToString(String v, String toV) {
if (v == null || "".equals(v)) {
v = toV;
}
return v;
}
}