我正在向我的应用程序发送POST JSON请求。
POST /CharSetTest/Test HTTP/1.1
Host: localhost:8090
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 1637b92b-5896-4765-63c5-d04ad73ea9f1
{
"SampleRequest": {
"FullName": "関連当"
}
}
我的CXF JAXRS消费者定义如下。
@POST
@Produces("application/json; charset=UTF-8")
@Consumes("application/json; charset=UTF-8")
public Response testCharSet(@Encoded String jsonBody);
但是我作为POST请求发送的日文字符(关连当)没有编码,导致一些垃圾字符“é¢é£å½äºè”
使用SoapUI导致“?????”字符。
此垃圾字符因客户端与客户端的不同而不同。我如何编码我的POST请求?
答案 0 :(得分:7)
将内容类型设置为:
"application/json;charset=UTF-8"
在您正在使用的应用程序中发送帖子请求时。 你可以找到"内容类型"在该应用程序中URL的标题中。
答案 1 :(得分:3)
这里没有答案对我有用。
我的内容类型已经设置为“ application / json; charset = UTF-8”,但是标头中的accept-encoding
设置引起了错误:
accept-encoding
设置:当我停用上面的最后一行时,一切正常!希望能对某人有所帮助。
答案 2 :(得分:1)
我遇到了类似的问题,并通过将HttpServletResponse实例的字符编码设置为utf-8来解决了该问题:
response.setCharacterEncoding("utf-8");
答案 3 :(得分:1)
我认为您需要使用json_encode()
这样的选项
json_encode($data,JSON_UNESCAPED_UNICODE);
邮递员以您的语言格式返回邮件。
答案 4 :(得分:0)
尝试
@RequestMapping(value = "/play", method = RequestMethod.POST, produces={"application/json; charset=UTF-8"})
如上所述将produces={"application/json; charset=UTF-8"}
设置为您的@RequestMapping