jsp&servlet各种中文乱码总结

  • JSP页面中文乱码
    在JSP页面最开始的位置加入一个page标签,在里面设置编码方式为UTF-8
<%@page contentType=“text/html;UTF-8” pageEncoding=“UTF-8%>
  • pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。

众所周知,JSP在服务器上是要先被编译成Servlet的。pageEncoding="UTF-8"的作用就是告诉JSP编译器在将JSP文件编译成Servlet时使用的编码。通常,在JSP内部定义的字符串(直接在JSP中定义,而不是从浏览器提交的数据)出现乱码时,很多都是由于该参数设置错误引起的。例如,你的JSP文件是以GBK为编码保存的,而在JSP中却指定pageEncoding=“UTF-8”,就会引起JSP内部定义的字符串为乱码。

另外,该参数还有一个功能,就是在JSP中不指定contentType参数,也不使用response.setCharacterEncoding方法时,指定对服务器响应进行重新编码的编码。

  • contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。

在不使用response.setCharacterEncoding方法时,用该参数指定对服务器响应进行重新编码的编码。服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。

  • request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。

该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。

  • response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。
    response.setContentType("text/html;charset=UTF-8");

服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。

  • setContentTypesetCharacterEncoding的区别

setCharacterEncoding只是设置字符的编码方式
setContentType除了可以设置字符的编码方式还能设置文档内容的类型

response.setContentType作用是让浏览器用utf-8来解析返回的数据,设置页面的编码格式
response.setCharacterEncoding作用是告诉servlet用utf-8转码,而不是用默认的iso8859-1

一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:

response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值