请求地址:/search/冒险.html
在Action里获取时,是乱码“??”
String keyword = null == request.getParameter("keyword") ? "" : request.getParameter("keyword");
keyword = new String(keyword .getBytes("ISO-8859-1"),"utf-8");
这里打印出来是乱“??”,怎么解决啊!
------解决方案--------------------
URL在前台用JS编码一下encodeURI!
function testUrl(){
var keyword = "乱码";
var url = '你的请求地址加参数'+encodeURI(keyword);
window.location.href = url ;
}
//后台这样转码获取
String Name=new String(URLDecoder.decode(request.getParameter("name"),"utf-8"));
在不行
在Web容器的server.xml文件中找到下面的节点、加上编码 URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
------解决方案--------------------
关于页面转码问题,个人有小结,希望可以给你帮助:
1.页面都改成UTF-8格式
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2.如果页面时使用get提交方式:则使用request.setCharacterEncoding("utf-8");
3.如果是post提交方式:则使用字符创强转:String name = new String(request.getParameter("参数").getBytes("iso-8859-1"),"utf-8");
4.在web.xml文件里配置字符集过滤器(此方法只对post提交方式有作用)
<!-- 字符集过滤 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上是个人学习时的总结,有不对的可以指出,嘻嘻!
------解决方案--------------------
+1 总结的很全面。LZ可以试试
------解决方案--------------------
不知道这个跟你说的分页什么关系!
------解决方案--------------------
用java.net.URLEncoder编码和解码,分页时也一样用这个!就OK了!