各种格式的编码解码工具类分享(hex解码 base64编码)
发布时间:2021-11-17 07:04:51
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang.StringEscapeUtils;
/**
* 各种格式的编码加码工具类.
*
* 集成Commons-Codec,Commons-Lang及JDK提供的编解码方法.
*
*
*/
public class EncodeUtils {
private static final String DEFAULT_URL_ENCODING = "UTF-8";
/**
* Hex编码.
*/
/*public static String hexEncode(byte[] input) {
return Hex.encodeHexString(input);
}*/
/**
* Hex解码.
*/
public static byte[] hexDecode(String input) {
try {
return Hex.decodeHex(input.toCharArray());
} catch (DecoderException e) {
throw new IllegalStateException("Hex Decoder exception", e);
}
}
/**
* Base64编码.
*/
public static String base64Encode(byte[] input) {
return new String(Base64.encodeBase64(input));
}
/**
* Base64编码, URL安全(将Base64中的URL非法字符�?,/=转为其他字符, 见RFC3548).
*/
public static String base64UrlSafeEncode(byte[] input) {
return Base64.encodeBase64URLSafeString(input);
}
/**
* Base64解码.
*/
public static byte[] base64Decode(String input) {
return Base64.decodeBase64(input);
}
/**
* URL 编码, Encode默认为UTF-8.
*/
public static String urlEncode(String input) {
try {
return URLEncoder.encode(input, DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException("Unsupported Encoding Exception", e);
}
}
/**
* URL 解码, Encode默认为UTF-8.
*/
public static String urlDecode(String input) {
try {
return URLDecoder.decode(input, DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException("Unsupported Encoding Exception", e);
}
}
/**
* Html 转码.
*/
public static String htmlEscape(String html) {
return StringEscapeUtils.escapeHtml(html);
}
/**
* Html 解码.
*/
public static String htmlUnescape(String htmlEscaped) {
return StringEscapeUtils.unescapeHtml(htmlEscaped);
}
/**
* Xml 转码.
*/
public static String xmlEscape(String xml) {
return StringEscapeUtils.escapeXml(xml);
}
/**
* Xml 解码.
*/
public static String xmlUnescape(String xmlEscaped) {
return StringEscapeUtils.unescapeXml(xmlEscaped);
}
}


猜你喜欢
- 一、Spring Bean 集合注入在【Spring学习笔记(三)】已经讲了怎么注入基本数据类型和引用数据类型,接下来介绍如何注入比较特殊的
- Android的布局管理器本身就是个UI组件,所有的布局管理器都是ViewGroup的子类,而ViewGroup是View的子类,所以布局管
- jrebelJRebel是一套JavaEE开发工具。JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产
- 本文实例为大家分享了struts2实现多文件上传的具体代码,供大家参考,具体内容如下首先搭建好struts2的开发环境,导入struts2需
- Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第
- 前言随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化。以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和
- 条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类
- 前言通常在工作中比较常用到的Microsoft Word是属于国外的文档内容编辑软件,其编译技术均属国外。而OFD是一种我国的自主文档格式,
- 本文实例为大家分享了C#遍历文件夹获取指定后缀名文件的具体代码,供大家参考,具体内容如下问题描述:项目需要,要进行某文件夹下所有shp数据的
- 什么是自动装箱,拆箱先抛出定义,Java中基础数据类型与它们的包装类进行运算时,编译器会自动帮我们进行转换,转换过程对程序员是透明的,这就是
- 定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图: 
- 方法一、若创建Activity时继承的是 Activity:第一种:常用的一种方法:requestWindowFeature(Wi
- 微信公众平台(map.weixin.qq.com)/开放平台(open.weixin.qq.com)/商户平台(pay.weixin.qq.
- 在Android项目开发过程中,Android Studio是一款非常强大的开发工具。到底有多强大,用了你就知道了。本文我将介绍Studio
- 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取
- 很久之前也写过一篇使用Jitpack发布Android开源库的文章,详见Android发布项目到jitpack的完整步骤近来因为工作原因,又
- 概述常用的弹窗有菜单,或者Dialog,但更加人性化和可自定义的还是PopupWindow如果只是展示列表数据或者弹窗列表选择,直接使用Li
- 本文实例为大家分享了使用PageHelper插件实现Service层分页的具体代码,供大家参考,具体内容如下使用场景:平时分页我们可以直接使
- 四道Java基础题,你能对几道?一、==符的使用首先看一段比较有意思的代码Integer a = 1000,b=1000; Integer
- activity_main.xml在res/layout文件中,放置一个TextView控件用于显示购物商城界面的标题,放置一个ListVi