[英]How to enable utf-8 request body in spring-boot?
我有一個 spring-boot 項目(spring-boot 版本:v2.3.0.RELEASE)。 在我的 api 中,我希望接收 String 主體,然后我將根據需要處理。 問題是,如果這個 String 主體中有一個 utf-8 字符,它會以某種方式改變字符串:
@RequestMapping(value= "/target", method = RequestMethod.POST)
public List<Target> createTarget(@RequestBody String body) {
return this.createTargets(body);
}
如果字符串中沒有 utf-8 字符(這是 json btw),那么當我調試body
變量的值時,它看起來沒問題。 但是,當我嘗試將 utf-8 字符發布到 api 時,會發生整個body
字符串的最后一個字符被剝離的情況。 我不知道為什么會這樣? 嘗試了一些我在 stackoverflow 上找到的修復,但到目前為止沒有幫助 =/。 我的情況是我發送了一個包含數組的 json 字符串。 所以最后一個方括號]
被剝離了,我不知道為什么。
能夠解決這個問題。 事實證明,這不一定只是 spring-boot 的問題。 簡而言之,我從請求中刪除了這個標頭,它開始工作得很好:
'Content-Length': data.length,
因此,出於某種原因,字符串中有 utf-8 個字符,data.length 可能偏離了 1? 或者是 spring-boot 太認真了,因此從字符串中刪除了最后一個字符。
您可以嘗試轉義字符。 轉換: http ://daniel-hug.github.io/characters/ 例如符號 Δ 將是 \Δ
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.