在做双语搜索时有遇到编码问题,从index.jsp传一个参数sw到servlet,servlet通过
String sw = request.getParameter("sw");
这句话去获得这个参数,但结果是乱码,整个elipse的编辑环境都设置成了utf-8,jsp的编码也是utf-8。
为了检验是不是编码问题,我在sevlet中直接设sw="能力 技能“,是能得到结果的,但是通过jsp传递就是不行。
问了几个人都没得到答案,网上看到一种办法是转编码
String name = new String(request.getParameter("name").getBytes("8859_1"), "GB2312");
问题是我都不知道传过来的编码是什么,最后想到了应该是tomcat的问题,在csdn上找了下,修改了tomcat下conf/server.xml:
找到:<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
在后面加上一句: URIEncoding="utf-8"
重启tomcat,一切OK
String sw = request.getParameter("sw");
这句话去获得这个参数,但结果是乱码,整个elipse的编辑环境都设置成了utf-8,jsp的编码也是utf-8。
为了检验是不是编码问题,我在sevlet中直接设sw="能力 技能“,是能得到结果的,但是通过jsp传递就是不行。
问了几个人都没得到答案,网上看到一种办法是转编码
String name = new String(request.getParameter("name").getBytes("8859_1"), "GB2312");
问题是我都不知道传过来的编码是什么,最后想到了应该是tomcat的问题,在csdn上找了下,修改了tomcat下conf/server.xml:
找到:<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
在后面加上一句: URIEncoding="utf-8"
重启tomcat,一切OK