java - spring @RequestParam Unicode 不正确

我正在使用 Spring 在 java 中创建 RESTful 服务。 我在下面定义了 Controller :

package com.pro.controller;    

@RestController
@RequestMapping("/favorites")
public class FavoritesController extends SkeletonController {

    protected static Logger log = Logger.getLogger("FavoritesController");

    @Autowired
    private FavoritesService service;

    @RequestMapping(value = "/save", method = RequestMethod.POST)
    public StandardResult savePaymentList(
            @RequestParam(value = "sessionId", required = true) String sessionId,
            @RequestParam(value = "comment", required = true) String comment,
            @RequestParam(value = "serviceId", required = true) int serviceId,
            @RequestParam(value = "fields", required = true) String fields) throws Exception {

        log.info("sessionId:" + sessionId + ", serviceId:" + serviceId + ", fields:" + fields + ", comment:" + comment);

        SavePaymentListRequest request = new SavePaymentListRequest();
        request.setLang("en");
        request.setSid(sessionId);
        request.setSessionRequestType(SessionRequestType.MOBILE);


        request.setFields(arrOfFields);
        return service.savePaymentList(request);
    }  

}

现在我已经从不同的客户那里调用它来准确判断客户或服务是否有问题。 最后我试过:chrome-extension: POSTMAN。 我正在使用 POST 选项执行此方法,我的请求查询字符串是: https://xx_mydomain_xx.com/fake/favorites/save/sessionId=cd6c5d88-771e-4831-a30a-c414fafa2803&comment =сяма&serviceId=157&fields=blablablafieds

我已经记录了发送的请求参数。在我的日志中,我看到俄语字符没有正确发布。例如,我发布了 Сяма 但在我的日志中我发现了 Ñ?Ñ?ма

我在 web.xml 文件中添加了过滤器:

 <filter>
    <filter-name>encoding-filter</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>
    </filter>
    <filter-mapping>
        <filter-name>encoding-filter</filter-name>
        <url-pattern>/*</url-pattern>
 </filter-mapping>

但这对我没有帮助

你能给我什么建议?

最佳答案

您不需要在测试请求中对这些参数进行 URL 编码吗?否则它们会在您的请求参数映射步骤中解码时中断,就像您描述的那样

https://stackoverflow.com/questions/27402639/

相关文章:

java - 从java中的单独文件夹中读取文本文件

regex - 为什么显示此错误 "Values must match the following

java - slf4j + log4j 显示除我的以外的所有日志

haskell - 用 GHC 将小型 Haskell 程序编译成巨大的二进制文件

tfs - 使用 Team Build 2013 拒绝门控 checkin

java - JXLayer 实现

android - 无法在 TYPE_SYSTEM_ALERT 窗口中获得焦点并开始编辑 EditT

python - 获取每个 json 模式错误的属性

c# - 防止标签点击事件作为默认行为

java - 如何组织包之间有空白的导入?