java - 为什么字符串返回为“4-5 u043Bu0435u0442 103-112 u0441u043C”?
问题描述
我正在开发从不同来源(REST API)收集数据并返回汇总数据的后端。
所以我从其中一个 API 请求数据。该 API 的响应(所有西里尔字符看起来都不错)描述为@Data class ProductSku {private string label; private boolean isInStock;}
:
[
{
//... omit lot of unused fields
"label": "1 год 73-75 см",
"isInStock": true
},
{
//... omit lot of unused fields
"label": "2 года 82-88 см",
"isInStock": true
}
]
然后我允许在我的后端端点的其他数据中请求它:
@GetMapping(path = "products/{prodId}", produces = {"application/json; charset=UTF-8","*/*;charset=UTF-8"})
public ProductEntity getProduct(@PathVariable("prodId") int prodId) {
return catalogService.getProduct(prodId);
}
class CatalogService {
public ProductEntity getProduct(int prodId) {
// ...
// ommited fill up result from other APIs
List<ProductData> productSkus = stockClient.getProductSkus(prodId);
productEntity.addSkus(productSkus);
return productEntity;
}
}
class StockClient {
public List<ProductSku> getProductSkus(int prodId) {
// using restTemplate
// querying by param productId
ProductData[] productsData;
try {
var headers = new HttpHeaders();
headers.set(HttpHeaders.CONTENT_TYPE, "application/json;charset=UTF-8");
headers.set(HttpHeaders.PRAGMA, "no-cache");
headers.set(HttpHeaders.CACHE_CONTROL, "no-cache");
var uri = UriComponentsBuilder.fromHttpUrl(apiUrl).queryParam("productId", prodId).build().toUri();
var requestEntity = RequestEntity.get(uri).headers(headers).build();
productsData = restTemplate.exchange(requestEntity, ProductData[].class).getBody();
} catch (...) {
//...
}
// convert to list here
return new Arrays.asList(productData);
}
}
// ...
所以它回应我:
{
// ...
"skus": [
{
"size": "1 u0433u043Eu0434 73-75 u0441u043C",
"inStock": true
},
{
"size": "2 u0433u043Eu0434u0430 82-88 u0441u043C",
"inStock": true
}
]
// ...
}
如您所见,而不是"2 года 82-88 см"
我得到"2 u0433u043Eu0434u0430 82-88 u0441u043C"
来自其他 API 的西里尔符号正常显示。
我希望能得到你的帮助
解决方案
推荐阅读
- jenkins - 有没有办法将 Jenkins 构建状态传递给另一个参数化工作?
- python-3.x - 将 Python 中的 API 二进制数据转换为粘贴到 XLSX
- list - 如何在枚举列表中的项目之间放置数字?
- apache-flink - 在 Flink 延迟指标中获取算子名称
- javascript - 用纯 Javascript 遍历多维数组
- python - Django Rest 框架返回字典而不是 OrderedDicts
- django - Pyinstaller 在 Django 静态 javascript 文件上编译但出现 404 错误
- go - golang 在 1 秒内每 1 毫秒执行一次函数(每秒 1000 次调用)
- rest - SprintBoot 内容类型为空
- angular - 如何以角度在组件之间传递选择器或html标签