JavaEE中Web请求/响应出现中文乱码问题的解决~

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/litrainy/article/details/83892587

Request请求对象中文乱码问题:

<注:请求页面的html文件中的<meta charset="utf-8">可指定浏览器的解码方式,Tomcat服务器的编码方式为:ISO-8859-1>

Get请求:

eg:

 String name=request.getParameter("name");
 name=URLEncoder.encode(name,"iso-8859-1");    //先用Tomcat的编码对问题字符串进行编码
 name=URLDecoder.decode(name,"utf-8");      //后用浏览器的编码对上面编码后的字符串再进行解码操作

Post请求:

  request.setCharacterEncoding("utf-8");     //指定服务器的编码方式(与浏览器的编码一致即可)

Response响应对象中文乱码问题:

字符流中文乱码问题解决:

eg:

	/*字符流中文乱码问题解决方案*/	
        String userName = request.getParameter("username");
	response.setCharacterEncoding("utf-8");                   //设置服务器的编码方式
	response.setContentType("text/html;charset=utf-8");      //设置浏览器的解码方式
	PrintWriter writer = response.getWriter();
	writer.write("Hello "+userName);

字节流中文乱码问题解决:

eg:

    /*字节流中文乱码问题解决方案*/
    response.setContentType("text/html;charset=utf-8");     //设置浏览器的解码方式
    ServletOutputStream outputStream = response.getOutputStream();
    outputStream.write(("Hello "+userName).getBytes("utf-8"));   //设置服务器的编码方式

<注:务必确保浏览器和服务器的编码方式一致>

猜你喜欢

转载自blog.csdn.net/litrainy/article/details/83892587