今天在HTML里面使用超链接传中文参数。
<a href="/shoppingcart/servlet/addShoppingCart?id=0003&name=鼠标&price=80.00">
超链接传参数的格式是:链接+“?”+“名字=值”&(下一个参数);
如上面的链接:=/shoppingcart/servlet/addShoppingCart
加上“?”
加上名字=值(id=0003)
使用&连接下个参数(name=鼠标)
问题就来了。。。。。
传到后台是乱码。。。。
通过下面的一些可以解决这个问题。。。
1)TOMCAT服务器的配置问题HTML页面是不是UTF-8编码;
这里可通过servlet.xml文件。修改上面的
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
在这里上面添加一句:
变成了
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8" />
这里是对TOMCAT6.0以上的版本配置,网上说其他版本好像也差不多,不过我这里没有试过。。
2)第二是在传过来的后台上面加上
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
3)上面两种情况。还是不行。
那就再传过来的参数上使用
java.net.URLDecoder.decode(“参数”,“编码格式”)
如:
String name = java.net.URLDecoder.decode(request.getParameter("name"),"UTF-8");
采用上面的方法,今天的问题就解决了。。。