Fer*_*ães 5 javascript java escaping
Java编程语言中是否有与JavaScript unescape函数等效的函数?也就是说,如果我的输入是字符串"I%20need%20help%21",则输出必须是"我需要帮助!",例如.
谢谢!
根据我的经验,URLDecoder.decode如果编码字符串中存在非ASCII字符,则可能会失败.例如这段代码:
URLDecoder.decode("%u017C", "UTF-8"); // %u017C is the result of running in Javascript escape('?')
Run Code Online (Sandbox Code Playgroud)
抛出以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u0"
Run Code Online (Sandbox Code Playgroud)
解决这个问题的最好方法我知道(虽然笨拙)只是在Java中运行Javascript :(
String jsEscapedString = "%u017C";
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
String result = (String) engine.eval("unescape('" + jsEscapedString + "')");
Run Code Online (Sandbox Code Playgroud)
BTW解决方案受Siva R Vaka的帖子启发
| 归档时间: |
|
| 查看次数: |
10398 次 |
| 最近记录: |