mybatis,控制層傳入中文亂碼--兩種解決方式


  最近寫了一個查詢接口,利用swagger測試,發現沒數據,后來拿sql直接去數據庫查,哎??!!!怎么有數據,好吧debug,發現傳入的參數亂碼了。

方法一:

  於是乎我開始百度,找到了一個方法,比較麻煩。原理就是,把傳進來的參數,從編碼格式A(A是容器的默認編碼格式),轉換為UFT-8。上代碼。

try { productName = new String(userName.getBytes("ISO-8859-1"), "UTF-8"); paramMap.put("productName", productName); } catch (UnsupportedEncodingException e){ LOGGER.info("UnsupportedEncodingException:", e); }

當然這里只粘貼了部分代碼,userName就是傳入的參數。

  果然成功了,參數一"ISO-8859-1" --代表你所用容器的編碼格式,這時用的tomcat,參數二--"UTF-8"-代表,你希望參數,轉換成那種編碼格式。

   但是后來我覺得tomcat啟動太慢,換用了jetty,jetty默認編碼格式就是“utf-8”呀,還是用上邊代碼,把 "ISO-8859-1"轉“UTF-8”,當然出問題了,那么,就方法二吧

 方法二:

  人呀,坐到什么位置是有原因的,技術總監出馬,一個注解就解決,---produces="application/json;charset=utf-8",代碼沒啥技術難度,把注解加載RequestMapping后邊就可以了,不貼那么多代碼

@RequestMapping(value = "/getUserDetail", method = RequestMethod.POST, produces="application/json;charset=utf-8" )

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM