zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    docker入门
    初级排序算法1-定义排序规则
    Lambda入门
    mac编辑器vim美化
    SSM搭建
    Memcached安装教程及使用
    lombok
    立个Flag-第一天
    等高线自适应分割
    wpf软件模拟鼠标键盘操作
  • 原文地址:https://www.cnblogs.com/kiko2014551511/p/11561792.html
Copyright © 2011-2022 走看看