1、今天遇到這么個問題,需要把一些特殊字符傳遞到后台進行處理,例如Aa111111!@#,結果到了后台出現了個別字符中文符號了。這個時候需要轉碼。常見的就是js端的escape和unescape這種函數。
2、但是,我的場景是頁面js進行escape,需要java接收數據再unescape
3、有很多寫法,有的是自己寫一個unescape實現的工具類,我用的是更為簡便的寫法,如下:
ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByExtension("js"); Object res = engine.eval("escape('Aa111111!@#')"); System.out.println(res); Object res1 = engine.eval("unescape('Aa111111%21@%23')"); System.out.println(res1);