Java中前端傳參含有“+”“=”等特殊字符處理方式
前端在進行base64加密或者AES等加密手段的時候,生成的字符串很可能存在“+”“=”“/”等特殊字符。這些字符如果不進行特殊處理,在進行參數(shù)傳遞的時候,會出現(xiàn)錯誤。
比如“+”如果不經(jīng)過處理,傳到Java后臺之后,就變成空格了,“=”就直接沒了。。。。
處理方式:
在js中,對url的加密分別由三種方式:
escape("aa+aa aa") 加密后:"aa+aa%20aa" encodeURI("aa+aa aa") 加密后:"aa+aa%20aa" +變成%2B encodeURIComponent("aa+aa aa") 加密后:"aa%2Baa%20aa"
java加密代碼:
// 加號變成%2B,空格變成加號 System.out.println(URLEncoder.encode("aa+aa aa","UTF-8")); aa%2Baa+aa
正常情況下,前端使用encodeURIComponent("aa+=")加密之后,傳到Java后臺,直接就是可以使用的,不需要再進行其它操作
如果發(fā)現(xiàn)不能直接使用,只需要根據(jù)實際的情況,進行字符串替換即可,比如replace("2B%","+")。
到此這篇關(guān)于Java中前端傳參含有“+”“=”等特殊字符處理的文章就介紹到這了,更多相關(guān)java傳參特殊字符處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot中的靜態(tài)資源加載順序優(yōu)先級
這篇文章主要介紹了springboot中的靜態(tài)資源加載順序優(yōu)先級,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09解決Java中socket使用getInputStream()阻塞問題
這篇文章主要介紹了解決Java中socket使用getInputStream()阻塞問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot 集成 ShedLock 分布式鎖的示例詳解
ShedLock是一個在分布式環(huán)境中使用的定時任務框架,用于解決在分布式環(huán)境中的多個實例的相同定時任務在同一時間點重復執(zhí)行的問題,本文重點給大家介紹SpringBoot 分布式鎖ShedLock的相關(guān)知識,感興趣的朋友一起看看吧2021-08-08