浏览器输出中文乱码及表单存储中文乱码问题解决办法

	   //字节流
         resp.setHeader("Content-Type", "text/html;charset=UTF-8");
		resp.getOutputStream().write("王守义".getBytes("UTF-8"));
		//字符流
		resp.setContentType("text/html;charset=UTF-8");//设置response返回字符格式
		resp.getWriter().println("

这是第"+count+"次进入Servlet

");

对于浏览器返回中文乱码的解决方式这里介绍两种,一种是让中文以字节流方式返回,需要设置返回头Content-Type属性为

"text/html;charset=UTF-8")

另一种方式是以字符流方式返回中文,需要执行resp.setContentType("text/html;charset=UTF-8");//设置response返回字符格式,

二者取得的效果相同,避免了浏览器中中文乱码的问题。

在浏览器提交中文内容存至数据库时,由于浏览器编码问题可能导致存至数据库的中文显示为乱码

  1. 参数接收中的乱码处理.

POST乱码处理:

*

的时候,这种提交才是POST提交.其他的都是get.

* POST方式提交的参数在请求体中.request对象在后台接收参数.request对象有缓存区.默认缓冲区的编码ISO-8859-1.

* 处理方式:设置request的缓冲区的编码.

    * request.setCharacterEncoding(“UTF-8”);

GET方式乱码处理:

* GET方式提交的参数会在地址栏上显示 在请求行的路径后面.浏览器就会对路径进行一次编码.将编码后内容取出来.再进行一次编码.

* 处理方式:

     * 修改服务器提交的编码.

     * 采用URLEncoder URLDecoder类对中文进行编码和解码.

     * 使用String类的构造方法:

         username = new String(username.getBytes("ISO-8859-1"),"UTF-8");

        System.out.println(username);


你可能感兴趣的:(JAVA基础,JAVA,WEB)