Java 在spring MVC中传递非英语字符参数

Java 在spring MVC中传递非英语字符参数,java,spring,spring-mvc,redirect,url-encoding,Java,Spring,Spring Mvc,Redirect,Url Encoding,我在springMVC中传递参数时遇到问题 @RequestMapping(value = "/", method = RequestMethod.POST) public String homePost(Model model, HttpServletRequest request) { StringBuilder redirect = new StringBuilder(); String para = request.getParameter("ke

我在springMVC中传递参数时遇到问题

@RequestMapping(value = "/", method = RequestMethod.POST)
    public String homePost(Model model, HttpServletRequest request) {
        StringBuilder redirect = new StringBuilder();
        String para = request.getParameter("keyword");

        redirect.append("redirect:/search?" + "cat=0&job="+ para);
        logger.info("Page called: SEARCH; Called parameter: KEYWORD: " + redirect.toString());

        return redirect.toString();
}
在我的控制台中,我可以看到:

页面名为:搜索;调用参数:关键字: 重定向:/search?cat=0&job=lolаöаlol

但我的网址是

我将我的所有编码设置为“UTF-8”,并尝试使用西里尔字母从列表中搜索,但它一直将西里尔字母转换为空格。我可以用拉丁字母搜索。如果我用西里尔字母手动输入URL,我也可以搜索。 在控制台中,它还显示

绑定=>[%lol lol%]

多谢各位

即使我没有使用StringBuilder,我也有同样的问题。 另外,我的web.xml

<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>true</param-value>
    </init-param>
 </filter>
 <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
编码滤波器
/*

谢谢您的回答。我解决了问题,如果有人感兴趣。
@亚历克斯的链接非常有用

@RequestMapping(value = "/", method = RequestMethod.POST)
    public String homePost(Model model, HttpServletRequest request) throws UnsupportedEncodingException {
        StringBuilder redirect = new StringBuilder();
        String para = request.getParameter("keyword");

        redirect.append("redirect:/search/" + URLEncoder.encode(para, "UTF-8"));
        logger.info("Page called: SEARCH; Called parameter: KEYWORD: " + redirect.toString());

        return redirect.toString();
    }
获取方法是:

@RequestMapping(value="/search/{keyword}", method = RequestMethod.GET)
    public String job(Model model,@PathVariable String keyword) throws UnsupportedEncodingException {

        String job = URLDecoder.decode(keyword);
        return null;
}
这个问题有用吗?你在用Tomcat吗?请参阅中的“如何更改GET参数的解释方式?”