1.html的meta标签
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> 是为了告诉浏览器发来的是html文档,其编码格式为utf-8。但是传来的文件到底是不是utf-8无法确定,例如是否可以传递gb2312的文件,但是meta标签却设置为utf-8?????
2.jsp的编译指令page中的pageEncoding属性和contentType属性
pageEncoding属性是为了说明此jsp文件本身采用的编码方式,contentType是说当服务器端jsp向客户单浏览器返回html时,此html的编码方式,此功能是不是为了告诉tomcat将要生成的html文件的格式,而不是为了通知浏览器此html文件的编码格式?????
3.get方法
get方法实际上是将参数放到url中,而为了保证url中的字符都是符合rfc 1783的规定,浏览器会对url进行编码,而对于url中的中文,其编码方式具有一定的不确定性,所以但服务器端取get方法传递的参数的时候,需要先对参数进行对应的解码。
4.post方法
post方法传递的参数中的中文则是根据<meta>标签来确定的,这也是meta标签除告诉浏览器html文档的编码格式外的另一个功能或者叫用途。
tomcat再接收post传递的参数的时候,默认使用iso-8859-1,除非是使用了request.setCharacterEncoding()设置了别的编码或者是对tomcat的默认解码配置文件进行了修改。
5.jsp返回html文件
当jsp返回的html文件如果没有设置文件编码格式的时候,默认采用iso-8859-1编码,由于此编码不支持中文,所以在返回的页面中有中文的时候会变为???。所以在服务器返回时,应设置response.setContentType("text/html;charset=gb2312"),这样就能保证返回的html文件中的中文不是乱码或者?。