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);