最近博客的目录改用Restful风格时,少不了用到@PathVariable注解,可是发现URL带中文的时候,接受参数时竟然乱码。常见的解决乱码访问无非下面几种:
方法1.用getbytes()转换编码
@RequestMapping(value="/search/{key}", method = {RequestMethod.GET})
public String searchFaceListIndex(@PathVariable(value="key") String key,Map result) throws UnsupportedEncodingException {
key = new String(key.getBytes("ISO-8859-1"), "utf8");
return "searchFaceList";
}
方法2.修改tomcat配置
第一:code
@RequestMapping(value = "/query/{keyword}", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
public String query(@PathVariable String keyword) {
}
第二:tomcat server.xml 中
但是改了之后发现还是不行,最后找到了原因:原来是在用eclipse启动Tomcat的时候,还必须修改workspace下面 的server.xml 中的Connector也添加URIEncoding="UTF-8"。
这也是个小坑了,略笔记下。