JAVA URLDecoder.decode()解码“+“变空格

这篇具有很好参考价值的文章主要介绍了JAVA URLDecoder.decode()解码“+“变空格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JAVA URLDecoder.decode()解码"+"变空格

java解决一个bug 后端对字符串解码的时候+ 变成空格 导致无法正确匹配
网上看了很多 都没有解决我的问题 可能是我情况特殊 解决问题后得到以下两种解决办法

1 前端传过来+ 字符串编码正确 如下图

Df689u%2B3u9ir1zqkjfk9loJ2cw%3D%3D

我需要解码的字符串如上图
如果传过来的字符 + 为“%2B” 只需要进行一次编码 两次解码即可

String encode = URLEncoder.encode("Df689u%2B3u9ir1zqkjfk9loJ2cw%3D%3D","utf-8");
String decode = URLDecoder.decode(URLDecoder.decode(encode, "utf-8"), "utf-8");

2特殊 + 字符串编码为%20

字符串如下

Df689u%203u9ir1zqkjfk9loJ2cw%3D%3D

不是**%2B** 而是**%20** 这种情况就比较麻烦
但是可以通过一下方法解决 先解码再编码 此时我们可以的到“+” 但是此时得到如下结果

 String decode= URLDecoder.decode("Df689u%203u9ir1zqkjfk9loJ2cw%3D%3D", "utf-8");//解码
 String encode= URLEncoder.encode(userPhoneDesdecode, "utf-8");//编码

这样操作后可以得到

Df689u+3u9ir1zqkjfk9loJ2cw%3D%3D

我们需要对+进行替换后 再次解码 即可
完整代码如下文章来源地址https://www.toymoban.com/news/detail-421744.html

 String decode= URLDecoder.decode("Df689u%2B3u9ir1zqkjfk9loJ2cw%3D%3D", "utf-8");//解码
 String encode= URLEncoder.encode(userPhoneDesdecode, "utf-8");//编码
 String userPhoneDesRplace = userPhoneDesEncode.replace("+", "%2B");//替换
  result = URLDecoder.decode(userPhoneDesRplace, "utf-8");

到了这里,关于JAVA URLDecoder.decode()解码“+“变空格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无速率码(入门七)OSD解码算法详解(Ordered Statistics Decoder)

      Ordered Statistics Decoder(OSD)作为一种次优的 ML 译码的方法(次优指误块率比ML译码算法高,见图一,可操作性强、性能逼近 ML 译码并且在较低信噪比下可以通过增加译码阶数不断地提高性能,缺点在于低信噪比下的OSD 译码计算复杂度 O ( K l ) Oleft(K^{l}right) O ( K l ) 会随阶

    2024年02月12日
    浏览(42)
  • 【python学习】基础篇-编码与解码 decode()方法 将对象元素打包成元组zip()函数

    在 Python 中使用字符串对象的encode()方法来实现编码。 encode0 方法是字符串对象内置的一个实现方法用于实现编码操作。语法格式如下: str.encode([encoding[,errors]]) 解码字符串则需要使用 bytes 对象的 decode0 方法来实现。 bytes.decode([encoding[,errors]]) 参数encoding 表示要进行编码的字符

    2023年04月19日
    浏览(42)
  • 深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)

    分类目录:《深入理解深度学习》总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Nadaraya-Watson核回归 ·注意力机制(Attention Mechanism):注意力评分函数(Attention Scoring Function) ·注意力机制(Attention Mechanism):

    2024年02月09日
    浏览(40)
  • java.lang.ClassNotFoundException: sun.misc.BASE64Decoder

    有一个新的应用服务,idea启动应用应用服务时,突然报错 java.lang.ClassNotFoundException: sun.misc.BASE64Decoder ,然后在网上搜索,说是建议使用apache包,该类新的JRE已经废弃,并从rt.jar包中移除。但是该异常堆栈实在一个jar包中,应用服务实例化一个bean时,就会初始化,如果出现异

    2024年02月05日
    浏览(39)
  • maven运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder”

    项目中用到加密jar包,单独在idea中运行项目时正常,通过mvn命令行运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder” 搜索之后发现 sun/misc/BASE64Encoder 这个东西仅在jdk1.8以及之前的版本存在,更高版本的jdk不存在了 一翻纠结 Mac下查看已安装的jdk版本及其安装目录 查看

    2024年01月23日
    浏览(43)
  • java过滤字符串前后特殊空格字符 NBSP

    在Java中,可以使用 trim() 方法过滤字符串前后的特殊空格字符,但是该方法无法过滤特殊空格字符 NBSP(非断空格)。要过滤 NBSP,可以使用正则表达式来实现。以下是使用正则表达式过滤字符串前后特殊空格字符 NBSP 的示例代码: 在上述代码中,通过定义正则表达式 [s u

    2024年02月16日
    浏览(39)
  • 华为OD机试题,用 Java 解【去除多余空格】问题

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 使用说明 参加华为od机试,一定要注意不要

    2024年02月10日
    浏览(43)
  • Java中去除字符串空格的几种方法

    1、String.trim(): 它去掉的只是String首尾空格,内部不处理; 2、str.replace(\\\" \\\", “”): 去掉所有空格,包括首尾、中间,但是又仅仅局限于一个空格 3、str.replaceAll(\\\" +\\\",\\\"\\\") : 可以匹配去掉所有空格 4、str.replaceAll(\\\"s*\\\", “”): 可以替换大部分空白字符, 不限于空格 s 可以匹配空

    2024年02月01日
    浏览(41)
  • Java分割字符串,分割逗号字符串,分割空格

    在一些读取文件,然后对数据进行处理的过程中,我们需要获取到对应的数据,这里我有一个文本其中的数据都是用逗号进行隔开的,我需要获取到他们;

    2024年02月11日
    浏览(52)
  • 使用eclipse编写Java代码:将缩进用空格,而不用Tab

    在菜单中选择Window-Preferences: 选择Java下面的Formatter: 点击Edit按钮,在弹出窗口中,Tab policy选择Spaces only: 将Profile name改为一个其它的名字才能保存: 以后新创建的函数、类缩进就完全使用空格了,但以前函数还是老样子: 可以查找、替换的方法。 在Java文件中选择一个

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包