Java实现JavaScript的unescape()函数


 java并没有可以直接使用的与unescape()功能相同的函数,但是java中有个很强大的工具可以曲线实现这一功能,这个API就是javax.script.ScriptEngineManager,可以实现js中的方法

 

需求:对url进行解码

刚开始打算使用URLDecoder进行解码,但出现了一个问题,如果一个错误的url(比如下图中http://www.baidu%20.com%),使用URLDecode对其进行解码,会报异常。这个url中第一个%20解码后对应字符" "(一个空格),而最后的那个%号,没有对应解码的字符,所以会报错。

最后想到了js中的unescape方法,如果没有对应解码的字符,会原样输出

JAVA代码

 

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

/**
* 使用javax.script.ScriptEngineManager来实现js中的unescape方法 * @author harara * @date 2019/7/8 9:27 * @version v2.0.0 */ public class Main { public static void main(String[] args){ ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByExtension("js"); //原始url String url = "http://www.baidu%20.com%"; //解码后url String unUrl; try { unUrl = (String)engine.eval("unescape('"+url+"')"); System.out.println(unUrl); //输出结果为:http://www.baidu .com% } catch (ScriptException e) { e.printStackTrace(); } }
}

 

 

 

 

 

 

 

 

参考地址  

Java实现JavaScript的escape()函数 https://blog.csdn.net/zhaifengmin/article/details/45166593


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM