<!--[if !supportLists]-->1、<!--[endif]-->页面是UTF-8,文件编码是UTF-8,后台是
String test1 = request.getParameter("test1");
String test2 = new String(test1.getBytes("ISO8859-1"),"UTF-8");
参数正常传递到后台不乱码。不论后台是jsp还是servlet。不论jsp中form提交是get还是post。
<!--[if !supportLists]-->2、<!--[endif]-->如果
JSP编码UTF-8情况,Tomcat6.0.30
|
Form get(同URL拼接参数的方式) |
Form post |
后台jsp |
new String(test1.getBytes("ISO8859-1"),"UTF-8") |
new String(test1.getBytes("ISO8859-1"),"UTF-8") |
后台servlet |
new String(test1.getBytes("ISO8859-1"),"UTF-8") |
new String(test1.getBytes("ISO8859-1"),"UTF-8") |
URIEncoding GBK |
new String(test1.getBytes("GBK"),"UTF-8") |
new String(test1.getBytes("ISO8859-1"),"UTF-8") |
URIEncoding UTF-8 |
request.getParameter("test1") |
new String(test1.getBytes("ISO8859-1"),"UTF-8") |
URIEncoding 的作用相当于,在后台接到参数后做的new String(test1.getBytes("ISO8859-1"),"UTF-8"),
生僻字在GBK范围内,即使页面编码是GBK不能直接在页面上写生僻字,但是表单还可以输入好提交。
页面是GBK编码:如果这个字在GBK范围内,你从ISO8859-1转GBK再转UTF-8也是正常的。
POST方式下,页面是什么编码,后台就应该从ISO8859-1转成什么编码。不管URIEncoding 是啥。
GET方式下,没有URIEncoding 的时候,页面是什么编码就是从ISO8859-1转成什么编码;如果URIEncoding 是编码***,那么后台就从***到页面编码,如果***和页面同编码,就不用转了。
JSP编码UTF-8情况,was7.0