现在有个项目从头到尾都是GBK编码,使用表单传值的时候正常,但在搜索结果里,指向搜索结果的第二页的链接中,要通过url来传keyword,比如searchFilm.action?keyword=火&page=2,发现这样关键字传过去会变乱码,于是修改了tomcat的server.xml加了个URLEncoding=gbk,没问题了。但总觉得这样只是权宜之计,我想把中文编码后再通过表单传过去,百度的搜索词好像就是这样的,但编码参数的编码是在本地用JS编好再传过去的吗?百度的好像不是,我禁用了JS他还是能编码还有就是浏览器的小差别 
我的这个项目
用遨游搜索后  生成的第二页的链接的参数还是中文searchFilm.action?keyword=火&page=2用opera搜索后  生成的链接确是searchFilm.action?keyword=%BB%F0&page=2opera的那种就是我想实现的效果~~请问有没有什么好的建议,我用的是Struts2+Hibernate

解决方案 »

  1.   

    在后台进行转码

    代码如下:name = new String(name.getBytes("iso-8859-1"), "UTF-8");
    不过还是推荐使用utf-8编码。一劳永逸的个事情。
      

  2.   


    现在我把数据库换成UTF-8了 也在struts.xml设置了utf-8编码
    ~URL提交还是乱码 用你的代码也没效果 不用也是乱码
      

  3.   

    暂时还是听了1L的建议把数据库和页面编码统一换成UTF-8  不过TOMCAT还是要配置URIEncoding成UTF-8的