簡體   English   中英

如何在 spring-boot 中啟用 utf-8 請求體?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM