URLDecoder和URLEncoder的使用

一.为什么要使用URLDecoder和URLEncoder

      URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencoded MIME字符串之间的转换

   当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧转换成特殊字符串,那么编码过程中可能涉及将普通字符  串和这种特殊字符串的相关转换,这就是需要使用URLDecoder和URLEncoder类

 

      URLDecoder类包含一个decode(String s,String charcter)静态方法,它可以将看上去乱码的特殊字符串转换成普通字符串
      URLEncoder类包含一个encode(String s,String charcter)静态方法,它可以将普通字符串转换成application/x-www-form-urlencoded MIME字符串

  当URL地址中仅包含普通非中文字符串和application/x-www-form-urlencoded MIME字符串无须转换,而包含中文字符串的普通字符串则需要转换,换句话说,也就是说URL地址中有"中文字符串"传递时,才会使用到这两个类,这样就可以将传递过来的中文接受后,再还原成原来的中文字符串.如不转换,则通过URL传递过来的中文字符中会变成乱码,无法还原了
 

 

二.如何使用
 

 public static void main(String[] args) throws UnsupportedEncodingException {






        //编码

        //将普通字符串转换成
        //application/x-www-form-urlencoded字符串
        String urlStr = URLEncoder.encode(
                "哈哈哈哈", "UTF-8");
        System.out.println(urlStr);


        //解码
        //将application/x-www-form-urlencoded字符串
        //转换成普通字符串

        String keyWord = URLDecoder.decode(
                "%E5%93%88%E5%93%88%E5%93%88%E5%93%88", "UTF-8");
        System.out.println(keyWord);
    }

 

 

 

 

热门文章

暂无图片
编程学习 ·

Taro 3 正式版发布:开放式跨端跨框架解决方案

作者:凹凸曼 - yuche 从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验。今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Taro 未来的更多两年能像一名共产主义战士一样经受住更多的考验。以下是 Taro 3 的一些新增特性: 跨框架:…
暂无图片
编程学习 ·

css基础学习记录

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>CSS</title><!--也可在head style标签里--><!--<style type="text/css">--><!--p{--><!--color: bisqu…
暂无图片
编程学习 ·

Bazel responsitory_rule 创建一个 rule

bazel respository_rule 主要功能是创建一个workspace 空间。对于package 内部的BUILD.tpl文件target 可以使用 responsity_ctx.file("//package") 创建 BUILD文件,或者repository_ctx.template(“BUILD”, build_tpl, {})对BUILD文件进行修改,然后通过@< name&…
暂无图片
编程学习 ·

什么是语音直播源码,语音下直播系统可以做什么?

语音直播源码是指用户能够通过语音进行聊天的软件功能。语音直播源码的形式多样化的,现在市场上也出现了很多很多语音形式的源码出现,比如,可以多人语音聊天,语音视频通话,语音直播,语音教学还有很多的语音游戏,像最近很多的和平精英,王者荣耀,狼人杀之类的,都是在游…
暂无图片
编程学习 ·

Andoid服务(Service)

Android服务(Service) 服务是一个后台运行的组件,执行长时间运行且不需要用户交互的任务。应用被销毁时也依然可以工作服务的两种状态:started:通过startServer()启动的服务,一旦启动,服务可以在后台一直运行 bound:通过bindServer()绑定的服务,Bound状态的服务,提供…
暂无图片
编程学习 ·

程序员,职场上请远离这种人!

对有些职场人来讲,甩锅就是一种生存手段。01.从大学打篮球说起上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于是左脚经常性崴脚,这是背景。我们班上有一个同学也喜欢打篮球,我俩水平都差不多因此也算能玩在…
暂无图片
编程学习 ·

冒泡、选择、插入排序算法(c语言)实现

几种常见排序算法的实现 一、冒泡排序 1.百度百科 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没…
暂无图片
编程学习 ·

Python超轻量数据库之SQLite

欢迎关注【无量测试之道】公众号,回复【领取资源】, Python编程学习资源干货、 Python+Appium框架APP的UI自动化、 Python+Selenium框架Web的UI自动化、 Python+Unittest框架API自动化、资源和代码 免费送啦~ 文章下方有公众号二维码,可直接微信扫一扫关注即可。1、什么是 SQ…
暂无图片
编程学习 ·

04 | 如何处理消费过程中的重复消息?

1.应用场景见: https://blog.csdn.net/william_n/article/details/1040254082.学习/操作2.1 阅读文档你好,我是李玥。上节课我们讲了如何确保消息不会丢失,课后我给你留了一个思考题,如果消息重复了怎么办?这节课,我们就来聊一聊如何处理重复消息的问题。在消息传递过程中…
暂无图片
编程学习 ·

k8s(1)

k8s-集群搭建的三种方式,目前主流的搭建k8s集群的方式有kubeadm、minikube,二进制包。kubeadm 是一个工具,用于快速搭建kubernetes集群,目前应该是比较方便和推荐的,简单易用 kubeadm是Kubernetes 1.4开始新增的特性 kubeadm init 以及 kubeadm join 这两个命令可以快速创…
暂无图片
编程学习 ·

spring @Primary-@Qualifier在spring中的使用

在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary 的作用就出来了。下面是个简单的使用例子。 有如下一个接口 public interface Singer {String …
暂无图片
编程学习 ·

Oacle-获取CLOB类型xml数据中指定节点数据

语法 select extractvalue(xmltype(colomnName),TraceNodePath) from tableName;本地小实验一下: 一、建表 create table panda(id number,xmlParam clob);二、插入数据: insert into panda values(1,to_clob( <xml> <head> <TransCode>dms03004</Trans…
暂无图片
编程学习 ·

【Java】--CyclicBarrier的介绍及应用

CyclicBarrier 简介 CyclicBarrier是java.util.concurrent包下的一个类,CyclicBarrier的字面意思是 可循环(Cyclic) 使用的 屏障(Barrier) 。 CyclicBarrier能让一组线程到达一个屏障(也可叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会打开,所有被屏障拦截的线…
暂无图片
编程学习 ·

使用hibernate框架完成CRUD操作

1.ORM思想: 简单来说就是对数据库中的表的字段和Java实体类中属性的映射O: Object , 表示Java应用中的实体类R: Relational关系型数据表M:映射例如在数据库中有一张表t_ser , t_user表中有三个字段 id,name,age , Java对象中有一个实体类与之映射User,User类中有三个属性id,nam…
暂无图片
编程学习 ·

叩丁狼培训实战Java教程之自定义spring

Java培训实战教程之自定义spring1.1 描述 在企业级开发中,spring框架应用非常广。为了让已经学习过spring框架同学,可以更深入的理解和应用spring,本文将通过自定义spring,更佳系统的阐述spring核心:IoC、AOP。IoC(Inversion of Control)控制反转:将对象的创建权交与sp…