`
cloudstars
  • 浏览: 39843 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java中URLEncoder.encode对应的JS解码

 
阅读更多

结论:Java的URLEncoder.encode(data, "UTF-8")对应的JS解码操作为:unescape(decodeURI(data));

背景知识:

JS的相关操作escape、encodeURI、encodeURIComponent

1)escape待叙

2)encodeURI待叙

3)encodeURIComponent待叙

Java的URLEncoder.encode待叙

 

示例:

[服务端]Java的data为:PreparedStatementCallback; SQL [insert into OBS.RSP_PRJ(RSP_PRJ_CODE, RSP_PRJ_NAME, BRANCH_ID, BRANCH_NAME, BRANCH_PATH, RSP_PRJ_REQ, RSP_FREQ, RSP_TIMES, DUE_DATE, RES_POS_REQ, RSP_PRJ_STATUS, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'CREATED', ?, ?, ?, ?)]; [jcc][t4][102][10040][3.52.95] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。\r\n使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null; nested exception is com.ibm.db2.jcc.a.cn: [jcc][t4][102][10040][3.52.95] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。\r\n使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null

 

[服务端]经过URLEncoder.encode之后的代码为:

PreparedStatementCallback%3B+SQL+%5Binsert+into+OBS.RSP_PRJ%28RSP_PRJ_CODE%2C+RSP_PRJ_NAME%2C+BRANCH_ID%2C+BRANCH_NAME%2C+BRANCH_PATH%2C+RSP_PRJ_REQ%2C+RSP_FREQ%2C+RSP_TIMES%2C+DUE_DATE%2C+RES_POS_REQ%2C+RSP_PRJ_STATUS%2C+CREATE_USER%2C+CREATE_TIME%2C+UPDATE_USER%2C+UPDATE_TIME%29+values%28%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%27CREATED%27%2C+%3F%2C+%3F%2C+%3F%2C+%3F%29%5D%3B+%5Bjcc%5D%5Bt4%5D%5B102%5D%5B10040%5D%5B3.52.95%5D+%E9%9D%9E%E8%87%AA%E5%8A%A8%E6%89%B9%E5%A4%84%E7%90%86%E5%87%BA%E7%8E%B0%E6%95%85%E9%9A%9C%E3%80%82%E8%99%BD%E7%84%B6%E5%B7%B2%E7%BB%8F%E6%8F%90%E4%BA%A4%E4%BA%86%E6%89%B9%E5%A4%84%E7%90%86%EF%BC%8C%E4%BD%86%E6%98%AF%E8%AF%A5%E6%89%B9%E5%A4%84%E7%90%86%E7%9A%84%E6%9F%90%E4%B8%AA%E6%88%90%E5%91%98%E8%87%B3%E5%B0%91%E5%8F%91%E7%94%9F%E4%BA%86%E4%B8%80%E4%B8%AA%E5%BC%82%E5%B8%B8%E3%80%82%0D%0A%E4%BD%BF%E7%94%A8+getNextException%28%29+%E6%9D%A5%E6%A3%80%E7%B4%A2%E5%B7%B2%E7%BB%8F%E8%BF%87%E6%89%B9%E5%A4%84%E7%90%86%E7%9A%84%E7%89%B9%E5%AE%9A%E5%85%83%E7%B4%A0%E7%9A%84%E5%BC%82%E5%B8%B8%E3%80%82+ERRORCODE%3D-4228%2C+SQLSTATE%3Dnull%3B+nested+exception+is+com.ibm.db2.jcc.a.cn%3A+%5Bjcc%5D%5Bt4%5D%5B102%5D%5B10040%5D%5B3.52.95%5D+%E9%9D%9E%E8%87%AA%E5%8A%A8%E6%89%B9%E5%A4%84%E7%90%86%E5%87%BA%E7%8E%B0%E6%95%85%E9%9A%9C%E3%80%82%E8%99%BD%E7%84%B6%E5%B7%B2%E7%BB%8F%E6%8F%90%E4%BA%A4%E4%BA%86%E6%89%B9%E5%A4%84%E7%90%86%EF%BC%8C%E4%BD%86%E6%98%AF%E8%AF%A5%E6%89%B9%E5%A4%84%E7%90%86%E7%9A%84%E6%9F%90%E4%B8%AA%E6%88%90%E5%91%98%E8%87%B3%E5%B0%91%E5%8F%91%E7%94%9F%E4%BA%86%E4%B8%80%E4%B8%AA%E5%BC%82%E5%B8%B8%E3%80%82%0D%0A%E4%BD%BF%E7%94%A8+getNextException%28%29+%E6%9D%A5%E6%A3%80%E7%B4%A2%E5%B7%B2%E7%BB%8F%E8%BF%87%E6%89%B9%E5%A4%84%E7%90%86%E7%9A%84%E7%89%B9%E5%AE%9A%E5%85%83%E7%B4%A0%E7%9A%84%E5%BC%82%E5%B8%B8%E3%80%82+ERRORCODE%3D-4228%2C+SQLSTATE%3Dnull

 

[客户端]decodeURI之后(还有一部分未解码)

PreparedStatementCallback%3B+SQL+[insert+into+OBS.RSP_PRJ(RSP_PRJ_CODE%2C+RSP_PRJ_NAME%2C+BRANCH_ID%2C+BRANCH_NAME%2C+BRANCH_PATH%2C+RSP_PRJ_REQ%2C+RSP_FREQ%2C+RSP_TIMES%2C+DUE_DATE%2C+RES_POS_REQ%2C+RSP_PRJ_STATUS%2C+CREATE_USER%2C+CREATE_TIME%2C+UPDATE_USER%2C+UPDATE_TIME)+values(%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+%3F%2C+'CREATED'%2C+%3F%2C+%3F%2C+%3F%2C+%3F)]%3B+[jcc][t4][102][10040][3.52.95]+非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。使用+getNextException()+来检索已经过批处理的特定元素的异常。+ERRORCODE%3D-4228%2C+SQLSTATE%3Dnull%3B+nested+exception+is+com.ibm.db2.jcc.a.cn%3A+[jcc][t4][102][10040][3.52.95]+非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。使用+getNextException()+来检索已经过批处理的特定元素的异常。+ERRORCODE%3D-4228%2C+SQLSTATE%3Dnull

 

[客户端]再经过unescape之后:PreparedStatementCallback; SQL [insert into OBS.RSP_PRJ(RSP_PRJ_CODE, RSP_PRJ_NAME, BRANCH_ID, BRANCH_NAME, BRANCH_PATH, RSP_PRJ_REQ, RSP_FREQ, RSP_TIMES, DUE_DATE, RES_POS_REQ, RSP_PRJ_STATUS, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'CREATED', ?, ?, ?, ?)]; [jcc][t4][102][10040][3.52.95] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。\r\n使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null; nested exception is com.ibm.db2.jcc.a.cn: [jcc][t4][102][10040][3.52.95] 非自动批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。\r\n使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null

 

 

分享到:
评论

相关推荐

    字符串的encode/escape

    在这个例子中,`URLEncoder.encode()`用于URL编码,`StringEscapeUtils.escapeHtml4()`用于HTML转义,然后分别有对应的解码和unescape方法。运行这段代码,你会看到原始字符串如何经过编码和转义,以及如何恢复到...

    jsp中页面间传汉字参数转码的方法.docx

    通常,我们可以使用`java.net.URLEncoder.encode()`方法来对字符串进行编码。这个方法会将字符串中的非字母数字字符转换为百分号(%)编码,例如将空格转换为"%20"。在示例中,为了应对中文字符,通常还需要指定编码...

    URL网址编解码.rar

    - Java:`java.net.URLEncoder.encode()` 和 `java.net.URLDecoder.decode()` - PHP:`urlencode()` 和 `urldecode()` 在实际开发中,URL编码不仅限于字符集转换,还包括对URL的规范化,如去除不必要的空格、处理...

    URL解码与转码

    在Java中,`java.net.URLEncoder.encode()`和`java.net.URLDecoder.decode()`是对应的函数。 源码分析可能是博客的一个重点,它可能深入到这些编码和解码函数的内部实现,解释了它们的工作原理。这有助于开发者理解...

    URL编解码.rar

    在Java中,可以使用`java.net.URLEncoder.encode()`和`java.net.URLDecoder.decode()`。 6. **URL编码与查询参数** 当URL包含查询字符串时,通常会用到编码。查询参数是以键值对形式存在的,键和值之间使用"&"分隔...

    java 中类似js encodeURIComponent 函数的实现案例

    总结来说,Java中实现`encodeURIComponent`和`decodeURIComponent`的方法需要额外的转换步骤,以确保与JavaScript的对应函数行为一致。这些自定义的实现可以帮助你在Java代码中处理URI编码和解码,尤其是在需要与...

    urlcode解码-HTTP:URL编码解码

    在Java中,可以使用`java.net.URLEncoder.encode()`和`java.net.URLDecoder.decode()`方法。 在处理网页表单提交或构建动态链接时,URL编码尤其重要。当用户输入的数据包含特殊字符时,为了防止数据丢失或误解,...

    URL解码-编码器URL解码-编码器

    在实际操作中,开发者通常会使用编程语言提供的内置函数进行URL编码和解码,例如JavaScript的`encodeURIComponent()`和`decodeURIComponent()`,Python的`urllib.parse.quote()`和`urllib.parse.unquote()`,Java的`...

    url特殊字符处理方法

    在Java中,使用java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s)函数来进行URL的编码和解码。在JavaScript中,使用escape(String s)和unescape(String s)函数来进行URL的编码和解码。 ...

    UrlEncode解码

    - Java中,`java.net.URLEncoder.encode()`和`java.net.URLDecoder.decode()`完成此功能。 - PHP提供了`urlencode()`和`urldecode()`函数。 5. **应用场景** - 表单提交:在HTTP GET请求中,表单数据会附在URL...

    url编码表,转换编码

    例如,JavaScript的`encodeURIComponent()`和`decodeURIComponent()`函数,Python的`urllib.parse.quote()`和`urllib.parse.unquote()`方法,以及Java的`java.net.URLEncoder.encode()`和`java.net.URLDecoder....

    jsp传参特殊字符

    - 在Java中,通常使用`URLEncoder.encode()`来对字符串进行URL编码。该函数同样遵循URL编码的标准,并且支持自定义编码方式。 #### 4. 实际应用场景与示例 假设我们需要通过URL传递一个包含特殊字符“#”的参数,...

    JSP页面中文参数的传递(get和post方法分析)

    在Java中,可以使用`URLEncoder.encode(String s, String enc)`方法对字符串进行编码。例如,将中文字符串编码为URL编码字符串,然后在发送请求的页面中嵌入到URL中。接收页面则需要使用`URLDecoder.decode(String s...

Global site tag (gtag.js) - Google Analytics