web阶段乱码问题

一,概述

1.为什么会出现乱码问题

因为客户端(浏览器)和服务器端的编码和解码不一致. 我们web阶段都是围绕请求响应机制展开的, 客户端请求服务器,服务器给客户端做出响应 . 也就意味着客户端和服务器需要进行数据交互.这数据是在wifi或者网线里面传输的, 在传输的过程中是电脉冲信号(二进制).

img

二,请求乱码

1.GET方式

  • 出现原因分析

img

  • 乱码解决, 一编(编码)一解(解码)

img

 

1 //获得是乱码 å¼ ä
2 String name = request.getParameter("name");
3 //通过iso8859-1编码,得到%E5%BC%A0%E4%B8%89
4 name = URLEncoder.encode(name, "iso8859-1");    
5 //通过utf-8解码, 得到张三
6 name = URLDecoder.decode(name, "utf-8"); 
7 //或者上面两行写成一行
8 name = new String(name.getBytes("iso8859-1"), "utf-8");

 

2.POST方式

  • post方式原因也是因为客户端(浏览器)和服务器端的编码和解码不一致, 但是post方式请求参数在请求体里面, 有专门的API来解决
request.setCharacterEncoding("utf-8"); 

三,响应乱码

  • 出现原因分析和解决

img

猜你喜欢

转载自www.cnblogs.com/coder-wf/p/12194395.html