Java 实现 URL Decode

背景:

ElasticSearch 自定义脚本 Painless 当中可以支持 Java 的部分 API,但 6.x 版本没有对 URLDecode 的支持(发现 7.0 已经支持),而分析用户搜索当中需要对 URL 进行 Decode

因而需要自己实现

package com.demo;import org.junit.Test;/*** URL Decode 的实现原理** 参考:* java.net.URLDecoder.decode()* https://zh.wikipedia.org/wiki/UTF-8 UTF-8* https://blog.csdn.net/hezh1994/article/details/78899683 彻底弄懂 Unicode 编码* https://blog.csdn.net/sinat_38816924/article/details/78438070* https://blog.csdn.net/iteye_13222/article/details/82636048 java 中文字符串,utf-8编码为byte数组的计算过程* https://blog.csdn.net/zx1749623383/article/details/79540748 Java编码和解码Unicode* https://blog.csdn.net/e19901004/article/details/103880863 判断字符串中是否含有4字节字符(UTF8编码)* https://www.cnblogs.com/weizhxa/p/12010890.html 特殊字符(包括emoji)梳理和UTF8编码解码原理* https://blog.csdn.net/left_la/article/details/36188181 Unicode详解(UCS-2,UCS-4,UTF-8,UTF-16,UTF-32)* http://www.fmddlmyy.cn/text6.html 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词** https://tool.lu/hexconvert/* http://tool.chinaz.com/tools/urlencode.aspx bug* https://design215.com/toolbox/utf8-4byte-characters.php*/
public class UrlDecode {public static void main(String[] args) {// java.net.URLDecoder.decode()String str = "/controller/action?&wd=%F0%9F%8D%80&s=%E9%9D%92%E5%B1%B1%E6%9C%AC%E4%B8%8D%E8%80%81%EF%BC%8C%E4%B8%BA%E9%9B%AA%E7%99%BD%E5%A4%B4%EF%BC%9B%E7%BB%BF%E6%B0%B4%E6%9C%AC%E6%97%A0%E5%BF%A7%EF%BC%8C%E5%9B%A0%E9%A3%8E%E7%9A%B1%E9%9D%A2&page=1&page_size=30";String decodedStr = urldecode(str);System.out.println(decodedStr);  // /controller/action?&wd=												

Java 原生实现 URL Decode 功能(从 Byte 字节数组转 Unicode 字符)相关推荐

  1. java object 转byte_Java将对象Object转换成Byte字节数组

    Java将对象Object转换成Byte字节数组的代码如下: /** * @from www.ityuan.com * @Description: Java将对象Object转换成Byte字节数组 * ...

  2. java使用tar算法压缩解压缩文件、数据流、byte[]字节数组

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用tar算法压缩解压缩文件.数据流.byte[]字节数组 需要添加org.apache.commons.compress包,下载 测试代 ...

  3. java使用BZip算法压缩解压缩文件、数据流、byte[]字节数组

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用BZip算法压缩解压缩文件.数据流.byte[]字节数组 需要添加org.apache.commons.compress包,下载 测试 ...

  4. java实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现gzip压缩解压缩byte[]字节数组,文件,字符串. 测试代码 public static void main(String[] a ...

  5. Java中将inputstream输入流转换成byte[]字节数组

    Java中将inputstream输入流转换成byte[]字节数组 Java中的I/O机制都是基于数据流进行输入和输出的,将流转换成字节数组保存下来是数据流传输必不可少的一部分.转换的代码如下(在具体 ...

  6. Java把一个文件转化为byte字节数组

    Java把一个文件转化为byte字节数组 /*** 把一个文件转化为byte字节数组.** @return*/private byte[] fileConvertToByteArray(File fi ...

  7. c#实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#实现gzip压缩解压缩byte[]字节数组,文件,字符串. 测试代码 static void Main() {//测试字符串String inpu ...

  8. JSON对象转换成Byte(字节)数组

    2019独角兽企业重金招聘Python工程师标准>>> 如果你不了解JSON对象,请看这里 // JSON对象转换成 byte 数组     Byte *byteArray = (B ...

  9. 把一个文件转化为byte字节数组

    /*** 把一个文件转化为byte字节数组.* @return*/private byte[] fileConvertToByteArray(File file) {byte[] data = nul ...

最新文章

  1. SAP PM 初级系列8 - PM 组织架构
  2. matlab plot title 包含变量的图片标题
  3. CentOS7中安装图形界面
  4. 认识代码编辑区域与解决方案区域 005
  5. redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?
  6. 【技术体系】前端工程师
  7. 如何从我的虚拟环境中更新pip本身?
  8. mysql的连接池配置文件,数据库连接池/配置文件数据库连接池
  9. python center用法_【语言学习】python——字符串
  10. Java笔试通关_Java面试通关宝典
  11. origin与matlab拟合的不同,Origin自定义模拟与matlab中cftool工具箱拟合结果比较 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  12. 网易云音乐:歌曲鉴赏人选品
  13. 中国区块链专利数量全球第一 BAT专利数稳居世界20强
  14. 摄影文件服务器,服务器和摄影摄像设备招标文件.pdf
  15. [CLR团队公告]CLR基础研究团队:精品系列推广活动启动
  16. 缅怀清明-记爷爷这一生
  17. 下载json文件,解决浏览器对JSON文件链接直接打开问题
  18. 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
  19. Python len()方法
  20. 贺新春丨大年初六 六六大顺

热门文章

  1. java过滤器敏感字的拦截_【JavaWeb】94:如何屏蔽敏感词?
  2. UE4 设置相机裁剪距离
  3. quixel brige 导入UE4的基本设置
  4. Source Insight免费下载(含秘钥+教程)
  5. 七日年化收益率(折线图)
  6. Hexo博客开发之——Github绑定Netlify改动代码后自动部署
  7. Linux命令——groups
  8. php 微信自定义分享,微信自定义分享(php方法)
  9. x86汇编_JE、JNE、JCXZ 和 JECXZ 指令_笔记_34
  10. Infopath技术