getParameter方法中文显示问号解决方法

本文探讨了在Tomcat8及其以上版本中遇到的中文显示为问号的问题,并提供了一个特殊的解决方案。主要原因是这些版本的Tomcat默认采用UTF-8编码,而某些第三方过滤器仍按旧版的ISO-8859-1编码处理中文,导致乱码。

最大的原因就是tomcat8前面的版本默认编码是ISO-8859-1,tomcat 8之后默认编码是UTF-8,所以!!!!!!
当我们在java文件中或者过滤器中添加这行代码的时候,就会变成问号!!!!

new String(value.getBytes("ISO-8859-1"), "utf-8");

(具体原因看下面)


在写这篇文章写到一半,突然就想出了解决办法

原因是我使用了网上的过滤器jar包,里面有一句

//把ISO-8859-1编码的值变成utf-8
value = new String(value.getBytes("ISO-8859-1"), "utf-8");

value:就是我们传过来的中文
ISO-8859-1:tomcat的默认编码

由于tomcat8默认编码是utf-8,而这个过滤器把他当成ISO-8859-1解码时,就会出现问题,导致所有中文变成问号

所以我们只需要不使用这个过滤器就可以了!!!!!


(这个是第一遍写一半的时候突然想到了原因所在,大家可以不用看,我只是留作第一次写博客的纪念)

这几天被 getParameter()方法,得到中文值显示的却是问号的问题烦恼了很久,百度了好久,所有答案都试过了都还是解决不了,所以特地发出一个比较另类的解决方法,如果有大神知道如何正确解决的,请在评论帮我们解惑,谢谢

前提(也就是我有设置这些东西还是没用):

jsp页面设置了UTF-8
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

tomcat设置了编码
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值