java - POST JSON 请求中的字符编码

标签 java rest jax-rs cxf

我正在向我的应用程序发送 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 请求?

最佳答案

将内容类型设置为:

"application/json;charset=UTF-8" 

在您正在使用的应用程序中发送发布请求时。 您可以在该应用程序的 URL header 中找到“内容类型”。

关于java - POST JSON 请求中的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33127780/

相关文章:

java - Mapstruct:将对象内部的列表映射到对象列表

Java http GET 路径路由到错误的 API

javax.ws.rs.core.Response 以集合作为实体

java - hibernate 5.2.10 : Unable to perform unmarshalling

java - Netbeans 没有给出提示

c# - PayPal Rest API - 使用更新的交易信息执行付款

java - 如何在 Spring 中开发可以作为 REST 和 SOAP 公开的 Web 服务?

java - 是否可以返回资源中的父类(super class)列表并在客户端接收适当的子类? (使用轻松)

java - 留意JTextField变化和run方法的变化

rest - 在 Hyperledger composer REST API 上使用 passport-http