Java REST WS的UMLAUT编码和解码

Java REST WS的UMLAUT编码和解码,java,spring,rest,encoding,urlencode,Java,Spring,Rest,Encoding,Urlencode,我有一个RESTWeb服务(JavaSpring),它接受HTTPGET参数。 参数可以包含一些本地数据,例如挪威或德国名称或街道:例如street=Rübenkamp 我想知道是否有一个标准协议定义RESTWebService及其客户端必须如何处理本地/特殊字符 我要找的是一般准则,例如: 客户端需要使用UTF-8/16对查询参数值进行编码 在服务器端,必须首先使用XXX(请求参数?)上可用的编码对参数值进行解码 当服务器响应时,它首先需要使用UTF-8/16对参数值进行编码,并将编码放在一些

我有一个RESTWeb服务(JavaSpring),它接受HTTPGET参数。 参数可以包含一些本地数据,例如挪威或德国名称或街道:例如street=Rübenkamp

我想知道是否有一个标准协议定义RESTWebService及其客户端必须如何处理本地/特殊字符

我要找的是一般准则,例如:

  • 客户端需要使用UTF-8/16对查询参数值进行编码
  • 在服务器端,必须首先使用XXX(请求参数?)上可用的编码对参数值进行解码
  • 当服务器响应时,它首先需要使用UTF-8/16对参数值进行编码,并将编码放在一些头中,等等
  • 以上有什么规定吗

    逃跑的规则也很受欢迎。

    使用

    
    SetCharacterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    编码
    UTF8
    强制编码
    真的
    SetCharacterEncodingFilter
    /*
    
    这必须是要执行的第一个筛选器

    此外,在HTMl头中,您希望指定字符编码,这样您就不必手动进行编码或解码


    此外,还需要查看POST和GET参数,这些参数通常与请求发送方的字符集设置相对应。因此,为了确保发送方不使用某些外来设置,您可以强制它以UTF-8的形式发送请求(顺便说一句,这几乎适用于所有情况):

    如果您不能强制客户机使用UTF-8作为编码,那么您可能必须检查它使用的编码是否与UTF-8兼容并“翻译”它

     <filter>
            <filter-name>SetCharacterEncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF8</param-value>
            </init-param>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>SetCharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    request.setCharacterEncoding("UTF-8");
    or
    request.setContentType("text/html; charset=UTF-8")
    
    request.getCharacterEncoding().equals("UTF-8");