一、引言

以前非常怵头web中编码问题,如今没办法必须搞了,硬着头皮把里面的东西搞清楚了,供大家分享下==务必先了解原理,再扎进代码==

二、编码基础

这里主要理解字符集与字符编码问题。

字符集就像一个字库,类似英文,中文,日文等,只是一个库;

字符编码就像一个映射关系,将字符集映射为一个个数用计算机存储;如utf,注意utf-8,utf-6等都是一个字符集,不同的字符编码==

三、响应编码

一般tomcat服务器默认解码ios-8859-1,从tomcat8以后默认utf-8不用再修改,浏览器默认解码是gbk,这里所以我们一般都自己设置,这样比较好控制。

这里response.setHeader("content-type", "text/html;charset=utf-8");有两个作用:1返回数据按照utf-8编码;2设置contenttype告知浏览器编码格式,然后浏览器就会用相应的格式解码,从而不会出现乱码==

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setHeader("content-type", "text/html;charset=utf-8");//request.setCharacterEncoding("utf-8");response.getWriter().println("哈哈哈");}

四、请求编码

这里分为get请求和post请求:

1、get请求

直接使用getParameter()就可以,不用转换,要是tomcat7及之前的可能要设置注释代码,因为之间的tomcat默认gbk,要转换一下。

然后设置返回编码格式即可setHeader,这里只能用gbk和utf-8,我开始设置了iso-8859-1除了乱码,后来发现自己脑子water了,iso-8859-1根本不支持中文==

     String name=request.getParameter("name");
/*      byte[]bytes=name.getBytes("iso-8859-1");name=new String(bytes,"utf-8");response.setHeader("content-type", "text/html;charset=utf-8");*/response.setHeader("content-type", "text/html;charset=utf-8");response.getWriter().print(name);

2、post请求

post请求要设置相应的解码方式,这个一般由发出post请求的界面决定,比如有表单的jsp界面它默认编码utf-8,发送的请求也是utf-8的。

     request.setCharacterEncoding("utf-8");String name=request.getParameter("name");response.setHeader("content-type", "text/html;charset=utf-8");//response.setHeader("content-type", "text/html;charset=utf-8");response.getWriter().print(name);

五、URL编码

URL编码,就是将中文转换为16进制表示,为了防止网络传输中数据丢失。

get一般不会对中文编码,post会对中文进行编码,然后在浏览器自动编码,在服务器自动解码。

四、总结

  • 设置响应编码;
  • 设置请求编码,get与post;
  • URL编码;

JavaWeb——响应编码与请求编码相关推荐

  1. 请求编码和响应编码乱码原因及解决方案

    1. 响应编码 * 当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso,因为iso不支持中文,一定乱码 * 在使用response.ge ...

  2. Spring/SpringBoot 过滤器修改、获取http 请求request中的参数 和 response返回值,比如修改请求体和响应体的字符编码

    通过自定义filter,RequestWrapper,ResponseWrapper 处理请求和响应数据,比如修改请求体和响应体的字符编码 1.request 和 response 中的数据都是 存在 ...

  3. JSP页面请求响应过程中的编码解码

    该片简要讲述:JSP页面传输过程中,浏览器与服务器的编码解码以及HTTP协议对URL进行的编码解码. 问题如下: //所有的JSP页面的编码都是UTF-8的格式 //test1.jsp <%@ ...

  4. Drf从入门到精通四(Drf请求与响应、Drf能够解析的请求编码与响应编码、Drf视图、Drf视图基类)

    文章目录 一.Drf请求与响应 1.Request类和Response类 2.Drf能够解析的请求编码与相应编码 二.Drf视图组件 四.Drf视图基类 1.基于APIView写5个接口 2.基于Ge ...

  5. unix系统编码 java_JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  6. python url编码_python url编码和解码

    一.为什么要进行Url编码 url带参数的请求格式为(举例): http://www.baidu.com/s?k1=v1&k2=v2 当请求数据为字典data = {k1:v1, k2:v2} ...

  7. 学习笔记之51单片机键盘篇(非编码键盘与编码键盘、非编码键盘的扫描方式、独立键盘、矩阵键盘)

    这篇博文主要记录51单片机键盘篇(非编码键盘与编码键盘.非编码键盘的扫描方式.独立键盘.矩阵键盘.键盘消抖等)包含原理图.代码等 (一)基础补充 1.键盘的任务 2.键盘的识别 3.如何消除按键的抖动 ...

  8. java http编码_java httprequest编码/解码

    http://jiapumin.iteye.com/blog/1006144 在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通OS下,返回 ...

  9. java万能编码转换_java编码转换的详细过程

    常见的JAVA程序包括以下类别: *直接在console上运行的类(包括可视化界面的类) *JSP代码类(注:JSP是Servlets类的变型) *Servelets类 *EJB类 *其它不可以直接运 ...

最新文章

  1. Android Support library
  2. 对linux文件权限的理解,理解linux文件权限2
  3. Replication的犄角旮旯(五)--关于复制identity列
  4. Python——你应该知道这些
  5. HTML中的全局属性
  6. HTML框架标签的使用-lt;framesetgt;
  7. 使用bakefile编译C工程代码
  8. 开机流程与主引导分区(MBR)——鸟哥私房菜
  9. State_状态模式_PHP语言描述
  10. nodejs+express开发blog(2)
  11. Nodejs与Java通用AES加解密
  12. php urlencode 大写,HttpUtility.UrlEncode 编码输出的字母替小写,怎样改成大写呢
  13. mac电脑安装mysql
  14. 录播系统服务器大全,专业高清录播服务器 全高清录播系统 系统设计精美
  15. Python 并发编程
  16. python如何用一行代码生成[1,4,9,16,25,36,49,64,81,100]
  17. 交通标志牌的检测与识别
  18. xx壳通过外网远程访问本地SQLServer服务器(原创)
  19. 机器学习-数据科学库day2
  20. sqlite的下载安装和配置使用(非常详细)

热门文章

  1. python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)
  2. 洛谷——P1567 统计天数
  3. 洛谷——P1085 [NOIP2004 普及组] 不高兴的津津
  4. sql同时修改两个表的数据_如何用SQL做数据透视表?
  5. 《强化学习》中的第15章:神经科学
  6. 【强化学习】表格型求解方法总结:基于表格型方法(Tabular Methods)的规划(Planning)和学习(Learning)
  7. mysql 锁监视器_MySQL锁监视器
  8. 指向结构体变量的指针变量
  9. mysql库垂按照模块_前任都能看懂的分库分表方案
  10. mysql开发平台_搭建mysql编程平台