spring MappingJackson2HttpMessageConverter 亂碼問題說明:spring
application/json ;charset=GBK 指定MediaType(坑)json
坑:跟蹤代碼發現,Spring使用的Jackson jar 包支持編碼格式只有UTF-8,UTF-16,UTF-32,當指定的編碼格式匹配不到時默認使用UTF-8,此處GBK不會生效。app
Spring使用默認的UTF-8編碼,但因爲mediaType使用指定application/json ;charset=GBK客戶端解碼根據回覆消息包頭裏指定的GBK進行解碼,那麼必定會是亂碼。編碼
結論:MappingJackson2HttpMessageConverter 沒法返回GBK編碼orm
Spring默認配置狀況下,按順序加載如下轉換器(具體含義見spring文檔HTTP Message Conversion 章節)文檔
StringHttpMessageConverterio
FormHttpMessageConverter亂碼
ByteArrayHttpMessageConverter配置
MarshallingHttpMessageConverter客戶端
MappingJackson2HttpMessageConverter
SourceHttpMessageConverter
BufferedImageHttpMessageConverter