分析解决JSP页面显示中文乱码的问题

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%  request.seCharacterEncoding("UTF-8");  %>   
<html>   
    <head>   
   		 <title>JSP的中文处理</title>   
  		 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
    </head>   
     
    <body>   
    <%=request.getParameter("name")%> 
   <!-- 实在不行,还可以强制转 -->
	var str = <%= new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); %>
    </body>   
</html>

◆charset=UTF-8的作用是指定JSP向客户端输出的编码方式为“UTF-8”;
◆pageEncoding=“UTF-8”,为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效;
◆request.setCharacterEncoding(“UTF-8”);是对请求进行了中文编码。

----------------------------------- 没有感情的分割线 ----------------------------------------
解决问题,先要研究问题,URL传中文参数为什么会出现乱码?

原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)

解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流

方法一、代码:(在 .jsp 页面写java代码,强制转)

<!--.jsp 页面写这个java代码。需要用 <%= %> 括起来 -->
var str = <%= new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); %>

ISO-8859-1编码是单字节编码,向下兼容ASCII.
这是通过转码的方式处理乱码问题,我们也可以通过Tomcat配置文件,设置URL编码集(URIEncoding)设置编码,这种方法也是一劳永逸的,

方法二、修改Tomcat/conf 目录下 server.xml(这样配置,会解决get请求中的 中文乱码问题。)

<Connector URIEncoding="UTF-8"  port="8080"  protocol="HTTP/1.1"   connnectionTimeout="20000"  redirectPort="8443" />

加这个:URIEncoding=“UTF-8”
重启Tomcat

方法三、在配置文件中添加配置,在web.xml中添加一段代码(这样配置,会解决post请求中的 中文乱码问题。)

<!-- 配置中文乱码的问题 -->
<filter>
       <filter-name>encodingFilter</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <async-supported>true</async-supported>
           <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
           </init-param>
</filter>
<filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

樂小伍

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

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

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

打赏作者

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

抵扣说明:

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

余额充值