运行时显示乱码,试了n多方法还是不行,myeclipse里边jsp什么的设置的是utf-8。求大神解答
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
Servlet implementation class firstServlet
*/
public class firstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
/**
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html,charest=UTF-8");
out.write("获取到的客户机信息如下:");
out.write("
");
out.write("请求的url地址:"+request.getRequestURL());
out.write("
");
out.write("请求的资源:"+request.getRequestURI());
out.write("
");
out.write("请求的URL地址中附带的参数:"+request.getQueryString());
out.write("
");
out.write("来访者的IP地址:"+request.getRemoteAddr());
out.write("
");
out.write("来访者的主机名:"+request.getRemoteHost());
out.write("
");
out.write("使用的端口号:"+request.getRemotePort());
out.write("
");
out.write("remoteUser"+request.getRemoteUser());
out.write("
");
out.write("请求使用的方法:"+request.getMethod());
out.write("
");
out.write("pathInfo:"+request.getPathInfo());
out.write("
");
out.write("localAddr:"+request.getLocalAddr());
out.write("
");
out.write("localName:"+request.getLocalName());
out.write("
");
out.close();
}
/**
@see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
还有一种可能就是你的Tomcat的编码设置没有统一,你搜一下Tomcat的server.xml的URIEncoding属性,配一下这个属性值为utf8。
看了你的代码,也就是你的代码是请求和响应都市用统一的编码。不过你漏了一个过程,请求-服务器-响应。你的服务器默认的不是utf8编码的。
所以你修改一下编码就好。如果你是用三角猫(Tomcat),配置一下编码格式就好。
统一JSP的编码很简单,去首选项搜JSP,设置编码为UTF8就行了。
1.检查Tomcat的server.xml和web.xml的URIEncoding属性,要设置为utf-8
<?xml version="1.0" encoding="UTF-8"?>
2.jsp页面字符编码也要为utf-8
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
你这种方式的话,用post就可以解决中文乱码,get的话,你用reques。set编码是没用的,因为get的数据是在url上,所以你需要在tomcat上设置,而post是http的boby部分,可以通过request.set设置编http://blog.csdn.net/zzhao114/article/details/54646945