我需要传递一个约束值,该约束值包含来自不同UTF语言(德语,塞尔维亚语,加泰罗尼亚语,中文等)的文本,作为HTTP请求中的queryParam。
尝试从另一端使用URLEncoder.encode和URLDecoder.decode,但无效。
尝试使用UriComponent.encode / decode,也没有帮助。
尝试使用utf-8字符集将标头添加到我的请求中。
尝试使用@ Connsumes / @ Produces / @ Encoded jersy批注,但仍然相同。
客户端
:preferredCountries: function() {
$.ajax({
url:"fetch.php",
method:"POST",
data:{action:"f2Countries"},
dataType:"json",
success:function(data){},
error: function() { }
});
},
...
服务器端:
private static final String ENCODING = "UTF-8";
private static final String CHARSET= "charset=" + ENCODING;
Invocation.Builder builder;
try {
builder = baseTarget.path(apiPath + "setConstraint")
//.queryParam("constraint", constraint)
.queryParam("constraint",UriComponent.encode(constraint, UriComponent.Type.FRAGMENT))
.queryParam("path", URLEncoder.encode(jsonRuleIdString, ENCODING))
.request(MediaType.APPLICATION_JSON)
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON + "; " + CHARSET );
} catch (UnsupportedEncodingException ex) {
throw new SpecificationException(ex.getMessage());
}
致谢。
答案 0 :(得分:0)
此帖子之后: http://jersey.576304.n2.nabble.com/QueryParam-and-character-encoding-td6928014.html
我搜索了“ tomcat查询参数utf编码”并达到以下解决方案: How to set request encoding in Tomcat?
一旦我将 URIEncoding =“ UTF-8” 添加到了tomcat容器的server.xml 中的标记中,就起作用了。