如果表单有中文参数值,也需要注意编码问题
因为,当表单提交的时候,浏览器会对表单中的数据进行编码(会使用打开表单时的编码格式进行编码),而服务器默认情况下,会使用ISO-8859-1去解码,所以,会产生乱码问题。
1)解决方式一:
step1:先保证表单所在的页面按照指定的编码格式打开。即:
<meta http-equiv="content-type" content="text/html;charset=utf-8" />已是一种规范(模拟content-type消息头,告诉浏览器正在解析的数据类型和编码格式)。
step2:调用request.setCharacterEncoding("utf-8");意思是告诉服务器,使用指定的编码格式进行解码。
u 注意事项:该方法只能用于"post"请求!注意代码放置顺序,在
request.getParameter()方法前。
2)解决方式二:
step1:同方式一的第一步。
step2:使用new String(str.getBytes("iso-8859-1"),"utf-8");
比如:String name=request.getParameter("uname");
name = new String(name.getBytes("iso-8859-1"),"utf-8");