Spring MVC前後端中文編碼解碼問題
簡單介紹一下,前端通過jQuery的ajax.post()方法來發送請求,默認編碼類型為utf-8,調用方法如下:
服務端使用Spring MVC進行處理,上麵的腳本POST的參數中,有一部分是包含中文字符的,所以,需要Spring MVC配置一下默認的編碼格式,需要在web.xml中配置如下的內容,來設定默認編碼格式:
配置後,在相應的Controller中就可以直接獲取傳遞的中文參數內容,而不需要進行任何的解碼操作,如下:
順便說一句,這裏麵使用了Spring MVC自動參數實例化的功能,隻要保證參數名與類的參數名一致,就可以自動完成參數的實例化操作,當然,這裏還有一個問題,那就是如果待實例化的類,其中含有枚舉類參數的話,那麼要求前端腳本在賦值相對應的參數值的時候,需要使用其枚舉值的字符串格式,如:枚舉值MoneyTypeEnum.COST對應的參數值,應該就是”COST“,注意,這裏是區分大小寫的。
這樣的配置,基本可以處理絕大多數的中文情況,當然,針對一些特殊字符的處理,還必須進行相應的編碼解碼操作,可以使用 encodeURIComponent或encodeURI來進行前端編碼,然後在客戶端通過如下方式來進行解碼:
注意一下對應的編碼格式,即可。
題外話,如何查看編碼內容是否已經正確地解碼,可以通過System.out.print()方法來輸出到控製台來查看,當然,如果通過Evaluate Expression實時運行或debugger來觀察的時候,可能會遇到中文無法正常顯示,顯示為方塊亂碼的情況,這是由於IDEA編輯器自己的字體選擇造成的,因為默認的編輯器字體是不包含中文的,所以無法正常顯示中文,修改一下即可,步驟如下:
file -> settings -> IDE Settings -> Apprearance -> UI Options -> Override default fonts by(not recommended)
選擇微軟雅黑,長相應該就是三個方塊,選中後,點擊下麵的Apply按鈕,就可以正常顯示啦。
最後更新:2017-04-01 13:37:10