產生亂碼的原因:編碼不一致
解決方法:
一般情況,contentType=“text/html;charset=gb2312”
當以post方式表單提交的亂碼處理.例子如下
~~~~~~~~~~~~ tes1.jsp
<body>
<form action="getinfo.jsp" method="post">
請輸入中文進行測試:<br>
<input type="text" name="test" value="我是中文">
<input type="submit" value="提交">
</form>
</body>
~~~~~~~~~~~~ getinfo.jsp
<body>
//方法一
request.setCharacterEncoding("gb2312");
String str=request.getParameter("test");
//方法二
String str=new String(request.getParameter("test").getBytes("ISO-8859-1"),"gb2312");
out.print(str);
%>
</body>
當以get方式表單提交的亂碼處理.例子如下
~~~~~~~~~~~~ tes2.jsp
<body>
<form action="getinfo.jsp" method="get">
請輸入中文進行測試:<br>
<input type="text" name="test" value="我是中文">
<input type="submit" value="提交">
</form>
</body>
~~~~~~~~~~~~ getinfo.jsp
<body>
//方法一(不能處理亂碼)
request.setCharacterEncoding("gb2312");
String str=request.getParameter("test");
//方法二
String str=new String(request.getParameter("test").getBytes("ISO-8859-1"),"gb2312");
out.print(str);
%>
</body>
更改tomcat的server.xml文件, <Connector port=8080 .....URIEncoding="gb2312"/>
<Connector port=8009 .....URIEncoding="gb2312"/>
注意用了這種方法:
~~~~~~~~~~~~ getinfo.jsp
<body>
//方法一
request.setCharacterEncoding("gb2312");
String str=request.getParameter("test");
//方法二(不能處理亂碼)
String str=new String(request.getParameter("test").getBytes("ISO-8859-1"),"gb2312");
out.print(str);
%>
</body>