解决ssh项目中get请求传参导致的乱码问题

方法一:通过在tomcat的Server.xml文件中配置utf-8的格式解决,具体配置如下:

找到<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

端口号为8080默认的,协议是HTTP/1.1协议,找到之后配置如下:

 

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

建议大家不要配置在8443端口后面,笔者就碰到过这样的问题。因为配置在最后,总有服务去修改server.xml文件,干掉utf-8配置。

注:很多公司的项目中因为开发人员处理get请求乱码是这种方式,没有明显的在代码中处理,导致新员工拿到项目之后,跑起来数据没有显示。如果大家碰到这样的问题可以这样配置试着去解决问题。

方法二:通过前端发送请求参数编码,后台接收数据时进行解码操作,具体操作如下

 

"&elements=" +encodeURI(encodeURI(elements)); //前端编码,这是get请求常见的拼接字符串传参的方式

String elements=null; //懒加载方式,也是java代码优化的一种方式

try {

elements = java.net.URLDecoder.decode(request.getParameter("elements"), "UTF-8");

} catch (UnsupportedEncodingException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

 

 

方法三:通过request解决请求乱码

String username=request.getparameter("username");

 //这种方式是先通过iso-8859-1这种中文字符集先编码,然后在通过utf-8解码

//因为get请求是通过地址栏传参,会被iso-8859-1解码传输

username=new String(username.getBytes("iso-8859-1"),"utf-8");    

顺便提一下request请求解决post乱码,方法如下:

//这种方式解决乱码必须放在request接受参数之前才能起作用。

request.setCharacterEncoding("utf-8");

方法四:通过response解决响应中文乱码

 

//必须要在向页面输出之前进行设置才能起作用,否则设置无效

response.setContentType("text/html;charset=utf-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值