req.setCharacterEncoding("utf-8");
方式一:每个数据都要单独的进行转换
String uname=req.getParameter("uname");
String uname2=new String(uname.getBytes("iso-8859-1"), "utf-8");
方式二:
req.setCharacterEncoding("utf-8");
在tomcat的server.xml文件中的Connector标签中增加属性: useBodyEncodingForURI="true"
服务器需要告知浏览器使用什么编码方式解析响应内容
resp.setContentType("text/html;charset=utf-8");
public class EncServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 解决post方式乱码, 在接收参数前设置编码方式
req.setCharacterEncoding("UTF-8");
System.out.println("这是一个测试...");
String uname = req.getParameter("uname");
// 解决get请求乱码
// 使用iso-8859-1解码
byte[] bytes = uname.getBytes("ISO-8859-1");
// 再使用UTF-8进行编码
uname = new String(bytes, "UTF-8");
System.out.println("uname = " + uname);
// 解决响应乱码
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().print("今天天气不太好...");
}
}
public class CodeServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求数据
String uname=req.getParameter("uname");
//String uname2=new String(uname.getBytes("iso-8859-1"), "utf-8");
//处理请求数据
System.out.println(uname);
//响应处理结果
resp.getWriter().write("请求处理完毕.");
}
}
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!