关于java web中的解码与编码

mac2022-06-30  25

一.html表单,用get和post提交信息到servlet

  1.<meta content="text/html; charset=ISO-8859-1>这个html标签里面的属性的是告诉浏览器的编码。个人觉得可以这样理解,你编写一个html文件,然后你在body里面输入了中文。这里的charset的值就是表明html制作使用的语言。那么当浏览器要显示这个html页面的时候,就知道这个页面是用什么字符显示了!就不会出现乱码了!还有一个作用就是页面编码!

   比如这里设置为 charset=ISO-8859-1,那么在编辑这个页面的时候就不能输入中文了。如果这里设置了Big-5,编辑这个页面的时候就不能使用简体中文了!

2.这里面请求的过程主要可以归纳为以下:客户端网页发送一个请求,浏览器将自动根据这个页面所使用的字符集来对汉字进行编码之后(这里就要用到上面说的,meta的页面编码了),传输到服务器。然后服务器通过字符集来解码。然后服务器端再把所需要返回的信息通过字符集编码,再传到客户端的浏览器,浏览器进行解码!这里涉及到了2次解码与编码。

3.get方法请求页面

get方法请求信息的时候是把form表单的信息直接放到Url地址里面的,具体的体现就是在request信息中体现在Query String Parameters中。

①传输的中文信息,通过页面编码格式进行URL编码(也就是meta里面的charset的编码格式)传输到服务端

URL编码规则:

URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是\。那么汉字的url编码呢?很简单,看例子:“胡”的ascii码是-17670,十六进制是BAFA,url编码是“

转载请注明原文地址: https://mac.8miu.com/read-63877.html
最新回复(0)