urlrewrite 中文乱码问题

Spring89 2012-12-21 11:47:23
请求地址:/search/冒险.html
在Action里获取时,是乱码“??”

String keyword = null == request.getParameter("keyword") ? "" : request.getParameter("keyword");
keyword = new String(keyword .getBytes("ISO-8859-1"),"utf-8");

这里打印出来是乱“??”,怎么解决啊!
...全文
239 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxin1128 2013-03-05
  • 打赏
  • 举报
回复
用java.net.URLEncoder编码和解码,分页时也一样用这个!就OK了!
liu4626846 2012-12-21
  • 打赏
  • 举报
回复
参数里面的乱码,在jsp页面提交路径的时候才能解决 tomcat里面设置与String转码都是不成功的 window.location.href = encodeURI(url) ;才是解决方法
BUG胡汉三 2012-12-21
  • 打赏
  • 举报
回复
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"/>
liu4626846 2012-12-21
  • 打赏
  • 举报
回复
引用 9 楼 liutianxiong888 的回复:
这个是查询啊,查询出来的结果有多条啊!那么在分页时候,这个参数怎么转码呢! 在action里面,二次调用java.net.URLEncoder.encode(keyword,"utf-8"); 是不行的,我在想能不能在java里用js转码,不知可不可行!
不知道这个跟你说的分页什么关系!
Spring89 2012-12-21
  • 打赏
  • 举报
回复
这个是查询啊,查询出来的结果有多条啊!那么在分页时候,这个参数怎么转码呢! 在action里面,二次调用java.net.URLEncoder.encode(keyword,"utf-8"); 是不行的,我在想能不能在java里用js转码,不知可不可行!
笑莫问 2012-12-21
  • 打赏
  • 举报
回复
引用 5 楼 wenguohua_123 的回复:
关于页面转码问题,个人有小结,希望可以给你帮助: 1.页面都改成UTF-8格式 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2.如果页面时使用get提交方式:则使用request.setCharacterEncoding("utf-8"); 3.如果是post提……
+1 总结的很全面。LZ可以试试
liu4626846 2012-12-21
  • 打赏
  • 举报
回复
引用 6 楼 liutianxiong888 的回复:
JavaScript code ? 1234 var first=encodeURIComponent(params); var second=encodeURIComponent(first); location.href = encodeURI(path+"/search/1-"+second+".html"); 现在通过这种方法用js转铁是可以的,但是分页的……
没有解决不了的问题!分页要做什么?
Spring89 2012-12-21
  • 打赏
  • 举报
回复

var first=encodeURIComponent(params);
var second=encodeURIComponent(first); 
location.href = encodeURI(path+"/search/1-"+second+".html");  
现在通过这种方法用js转铁是可以的,但是分页的时候呢!能在java代码里用js转码么?
  • 打赏
  • 举报
回复
关于页面转码问题,个人有小结,希望可以给你帮助: 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> 以上是个人学习时的总结,有不对的可以指出,嘻嘻!
BUG胡汉三 2012-12-21
  • 打赏
  • 举报
回复
引用 3 楼 liutianxiong888 的回复:
引用 1 楼 hzw2312 的回复:URL在前台用JS编码一下encodeURI! JavaScript code ? 12345 function testUrl(){ var keyword = "乱码"; var url = '你的请求地址加参数'+encodeURI(keyword); window.loc……
哥们、我这边总是百试不爽啊!
Spring89 2012-12-21
  • 打赏
  • 举报
回复
引用 1 楼 hzw2312 的回复:
URL在前台用JS编码一下encodeURI! JavaScript code ? 12345 function testUrl(){ var keyword = "乱码"; var url = '你的请求地址加参数'+encodeURI(keyword); window.location.href = url ; } Java……
我按照这样试了,还是乱码,总是二个??,你弄过么!

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧