提几个问题:
1.从JSP页面按get或post方式传递参数,到返回结果这个过程中,中文参数会被经过几次字符编码,具体经过哪些编码过程?
2.JSP页面设置的字符编码会对传递的参数进行编码吗?如JSP页面设置为:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
那么在传递参数之前,会将参数先进行编码成GBK吗?
3.在参数传递到服务器这个过程中(tomcat),会进行几次URLEncoder.encode()编码和几次URLDecoder.decode()解码,并且 编码和解码的时候都采用什么字符编码格式?在传递的过程中是否也会使用new String(s.getBytes("GBK"), "UTF-8")这种方式进行转码或者其他方式进行转码?
4.如果在tomcat的server.xml文件的<Connector>中设置URIEncoding属性,是否会将所有请求进行一次编码,这样的话又是在什么地方进行解码的呢?URLEncoding这个属性设置与不设置的区别如何?
5.如下面代码中,如何再将乱码转换回汉字?
String s = "中文";
try {
s = new String(s.getBytes("GBK"), "UTF-8");
} catch (UnsupportedEncodingException e3) {
e3.printStackTrace();
}
System.out.println(s);
此时,s已经被转换为乱码,如何再将它转换回正常的汉字呢?
以上几个问题,我已经迷惑了好久,始终没有一个清晰的概念,希望大家一起讨论!希望了解的高人们能够给出一个清晰的回答,在参数传递这整个流程中,都经过了哪些关键的编码或转码?
如果有好的资料,也希望不吝分享!