response输出中文时处理乱码

向页面响应的方法:

  • getOutputStream();

  • getWriter();

  • 这两个方法是互斥的.

    • 做出响应的时候只能使用其中的一种流响应.
  • 输出中文乱码的处理:

    • 字节流:

      • 设置浏览器默认打开的编码:
        • resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
      • 设置中文字节取出的时候编码.
        • “中文”.getBytes(“UTF-8”);
    • 字符流:

      • 设置浏览器打开的时候的编码
        • resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
      • 设置response的缓冲区的编码
        • response.setCharacterEncoding(“UTF-8”);

      ***** 简化的写法:response.setContentType(“text/html;charset=UTF-8”);

下面是字符流设置的代码:

package encode;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 解决字符流输出中文乱码问题
 * 由于response使用的字符流有缓冲区,而缓冲区默认的编码是ISO-8859-1,编码根本不支持中文
 * 
 * 解决方法:
 *   *设置response的字符流的缓冲区的编码
 *   *设置浏览器默认打开的时候采用的字符集编码
 */
public class encodeDemo extends HttpServlet {
	private static final long serialVersionUID = 1L;
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置浏览器默认打开的时候采用的字符集编码
		//response.setHeader("Content-Type", "text/html;charset=UTF-8");
		
		//设置response的字符流的缓冲区的编码
		//response.setCharacterEncoding("UTF-8");	
		
		//下面这一句话相当于上面的两句
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().print("哈哈哈哈");
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值