解决中文输出乱码问题-HttpServletResponse应用-【任务1】

~本特利~

解决中文输出乱码问题

为什么会有乱码问题,实际就是在编码时采用了ISO-8859-1的字符码表,通过使用接口提供的方法可以解决。

1.创建Servlet

项目里编写一个名为的类,在类中定义一个中文字符,然后使用中文输出流输出

public class ChineseServlet extends HttpServlet {
	public void doGet(HttpServletRequest request,
                      HttpServletResponse response)throws ServletException, IOException {
		  //第1种方式
	 	  //response.setCharacterEncoding("utf-8");
		  //response.setHeader("Content-Type","Text/html;charset=utf-8");
		//设置字符编码
		response.setContentType("text/html;charset=utf-8");
		String data = "中国"; //定义一个中文字符
		PrintWriter out = response.getWriter();
			out.println(data);
		}
		public void doPost(HttpServletRequest request,
                           HttpServletResponse response)throws ServletException, IOException {
			doGet(request, response);
		}
	}

2.web.xml中配置映射

<servlet>
    <display-name>ChineseServlet</display-name>
    <servlet-name>ChineseServlet</servlet-name>
    <servlet-class>cn.itcast.chapter04.response.ChineseServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ChineseServlet</servlet-name>
    <url-pattern>/ChineseServlet</url-pattern>
  </servlet-mapping>

在浏览器中:
在这里插入图片描述


总结

解决响应中文乱码方案一(不推荐使用):

// 设置服务器字符集为 UTF-8
resp.setCharacterEncoding("UTF-8");
// 通过响应头,设置浏览器也使用 UTF-8 字符集
resp.setHeader("Content-Type", "text/html; charset=UTF-8");

解决响应中文乱码方案二(推荐):

// 它会同时设置服务器和客户端都使用 UTF-8 字符集,还设置了响应头
// 此方法一定要在获取流对象之前调用才有效
resp.setContentType("text/html; charset=UTF-8");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~本特利~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值