使用URLEncoderURLDecoder进行URL参数的转码与解码
Posted cosyer的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用URLEncoderURLDecoder进行URL参数的转码与解码相关的知识,希望对你有一定的参考价值。
url参数的转码与解码
import java.net.URLDecoder; import java.net.URLEncoder; String strTest = "?=abc?中%1&2<3,4>"; strTest = URLEncoder.encode(strTest, "UTF-8"); System.out.println(strTest); strTest = URLDecoder.decode(strTest,"UTF-8"); System.out.println(strTest);
执行结果:
%3F%3Dabc%3F%E4%B8%AD%251%262%3C3%2C4%3E
?=abc?中%1&2<3,4>
1. 问题的引出
在Restful的服务设计中,查询某些信息的时候,一般的URL地址设计为: get /basic/service? keyword=历史 , 之类的URL地址。 但是,在实际的开发和使用中,确是有乱码情况的发生,在后台的读取keyword信息为乱码,无法正确读取。
2. 乱码是如何产生的?
由于我们利用URL传递参数这种方式是依赖与浏览器环境中的,也就是说URL及URL中包含的各个key=value格式的传递参数键值对参数是在浏览器地址栏中的处理原理处理相应编码后传递至后台进行解码的。
由于我们没有进行任何处理,此时javascript请求URL并传参数存在中文时(也就是说输入框中输入中文时),对URL的中文参数进行编码是按照浏览器机制进行编码的。此时编码存在乱码问题。
以上是关于使用URLEncoderURLDecoder进行URL参数的转码与解码的主要内容,如果未能解决你的问题,请参考以下文章