请问为什么
HttpServletRequest request = ServletActionContext.getRequest();
System.out.println(request.getCharacterEncoding());
打印出来的编码方式是:UTF-8 呢??我的tomcat server.xml并没用设置,也没用设置filter,不是应该默认是ISO-8859-1吗?
最主要的问题是既然是UTF-8编码,为什么
url是:http://localhost:8080/tuangou/getItemsByCategory?number=0&category=好好
action里面的代码是:number =Integer.parseInt(request.getParameter("number")) ;
category = request.getParameter("category");
System.out.println("number is ---" + number + " category is " + category);systemout输出的是:number is ---0 category is ºÃºÃ乱码?求解:都好几天了,烦啊!!!
HttpServletRequest request = ServletActionContext.getRequest();
System.out.println(request.getCharacterEncoding());
打印出来的编码方式是:UTF-8 呢??我的tomcat server.xml并没用设置,也没用设置filter,不是应该默认是ISO-8859-1吗?
最主要的问题是既然是UTF-8编码,为什么
url是:http://localhost:8080/tuangou/getItemsByCategory?number=0&category=好好
action里面的代码是:number =Integer.parseInt(request.getParameter("number")) ;
category = request.getParameter("category");
System.out.println("number is ---" + number + " category is " + category);systemout输出的是:number is ---0 category is ºÃºÃ乱码?求解:都好几天了,烦啊!!!
这个获得的编码格式应该只能影响到post方式提交的,你尝试用post提交中文,后台不转码打印出来看看...
category = request.getParameter("category");
获取的这个category是通过get也就是URL传递的参数,http://localhost:8080/tuangou/getItemsByCategory?number=0&category=好好
,URL传递的时候web容器会进行一个URIEncoding的过程,估计就是这个过程导致你后台获取打印出来是乱码...以上只是我的观点,不一定正确,编码一直是个挺困扰人的问题...这是一篇很详细的说明,楼主可以看看:http://blog.csdn.net/windgoogle/article/details/4746550
http://blog.csdn.net/kzl623/article/details/5925499
顶,我也是一直这么解决的。
form提交,还是ajax提交基本都可以解决的。
url 里面默认是不支持中文的,必须把中文转换成 unicode
jdk的 net包下又一个转换工具,具体在哪忘了。另外 最好不要用url传参,尽量用post传参吧 !用get传带有中文的参数是个严重的问题!!!
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" /> 就可以了,谢谢
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/> 在redirectPort="8443"后面加上URIEncoding="UTF-8" 就OK了,记住要大写