java的web开发中URLEncoder.encode方法

java的web开发中URLEncoder.encode方法一:我们先看2个编码的情况Stringname=java.net.URLEncoder.encode(“测试”,”UTF-8″);System.out.println(name);name=java.net.URLEncoder.encode(name,”UTF-8″);System.o…

大家好,又见面了,我是你们的朋友全栈君。

一: 我们先看2个编码的情况

            String name=java.net.URLEncoder.encode(“测试”, “UTF-8”);
            System.out.println(name);
            name=java.net.URLEncoder.encode(name,”UTF-8″);
            System.out.println(name);
            name=java.net.URLDecoder.decode(name, “UTF-8”);
            System.out.println(name);
            System.out.println(java.net.URLDecoder.decode(name, “UTF-8”));

输出结果是
            %E6%B5%8B%E8%AF%95
            %25E6%25B5%258B%25E8%25AF%2595
            %E6%B5%8B%E8%AF%95
            测试

二; 我们来看编码一次,提交给服务器的结果

我们吧“测试”编码一次的字符串%E6%B5%8B%E8%AF%95  ,提交,服务器端用request.getParameter(“name”)的到参数,然后我们解码

System.out.println(java.net.URLDecoder.decode(name, “UTF-8”));

我们发现得到的结果 ???è?  显示乱码。

因为在request.getParameter(“name”)之前会自动做一次解码的工作,而且是默认的ISO-8859-1,相当于调用了一次java.net.URLDecoder.decode(name, “ISO-8859-1”)

所以我们再用URLDecoder.decode(name, “UTF-8”)就是乱码了。

三: 我们在看编码2次,提交给服务器的结果

编码2次的字符串是%25E6%25B5%258B%25E8%25AF%2595 ,服务器端用request.getParameter(“name”)的到参数,自动按ISO-8859-1解码得到的串是%E6%B5%8B%E8%AF%95  ,也就是编码一次得到的字符串。

然后,我们在System.out.println(java.net.URLDecoder.decode(name, “UTF-8”));解码输出,得到的结果就是 “测试” 2个汉字。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148030.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pki ca与数字证书技术大全_内部控制体系种类

    pki ca与数字证书技术大全_内部控制体系种类文章目录一、什么是PKIPKI基本组件数字证书分类二、参考一、什么是PKIPKI是PublicKeyInfrastructure的缩写,中文叫做公开密钥基础设施,也就是利用公开密钥机制建立起来的基础设施。PKI是PublicKeyInfrastructure的缩写,其主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间

    2022年8月22日
    11
  • Idea激活码最新教程2020.2.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2020.2.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2020 2 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2020 2 2 成功激活

    2025年5月23日
    4
  • list 初始化大小

    list 初始化大小List list2 = new ArrayList1000000);          for(int i = 0 ; i 1000000; i++){              student = new StudentVO(i,”chenssy_”+i,i);              list2.add(student);          } list会

    2025年5月23日
    5
  • CentOs6 Yum 源失效 404[通俗易懂]

    CentOs6 Yum 源失效 404[通俗易懂]今天下午想装点东西。。突然发现所有的6yum源都失效了YumRepoError:AllmirrorURLsarenotusingftp,http[s]orfile.Eg.Invalidrelease/repo/archcombination/removingmirrorlistwithnovalidmirrors:/var/cache/yum/x86_64/6/base/mirrorlist.txtError:Cannotfindavalid..

    2022年5月16日
    50
  • Java面试-面向对象

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。什么是多态? 多态被简要描述为“一个接口,许多实现”。多态性是能够在不同上下文中为某事物赋予不同含义或用法的一…

    2021年6月23日
    102
  • 自动化测试平台(四):前端环境搭建

    自动化测试平台(四):前端环境搭建上一章节我们实现了用户模块的增删改查接口,现在有了接口了就需要开始开发前端页面对其进行展示交互了。现在越来越多的前端开发框架和UI组件让我们能够更容易迅速的去开发前端页面,这一章节将通过react(Web开发框架)+antd(UI组件库)+ts(Javascript的超集)的技术栈来搭建我们的前端项目。

    2022年6月16日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号