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