Commons Codec 简介

Apache Commons Codec(TM) 框架提供常用编码器和解码器的实现,如:Base64、十六进制、语音和 URL。它由一组实用程序和一个用于编码和解码文本和二进制数据的简单框架组成。

推动力

Apache Commons Codec 编解码器的形成是为了将开发工作集中在一种确定的 Base64 编码器实现上。在该编解码器开发之时,大约有 34 种不同的 Java 类用于处理遍布 Apache 软件基金会 CVS 存储库的 Base64 编码。

JakartaTomcat 项目的开发人员已经实现了 Base64 编解码器的原始版本,它被 Commons HttpClient 和 Apache XML 项目的 XML RPC 子项目复用。

经过将近一年的时间,Base64 的两个分叉版本之间出现了很大的分歧。XML-RPC 已应用了许多未应用于 Commons HttpClient Base64 的修复程序和补丁。不同的子项目在遵守 RFC 2045 的不同层次上有不同的实现。

在这种令人困惑的重复工作中,出现了这种简单的尝试,以鼓励不同项目之间的代码重用。虽然这个包包含一个用于创建编码器和解码器的抽象框架,但 Codec 本身主要侧重于提供用于处理常见编码的功能实用程序。

二进制编码器

  • Base32:定义了 Base32 的编码和解码。Base32 编码详情请参考:RFC 4648

  • Base32InputStream:以流的方式(无限大小)提供 Base32 编码和解码

  • Base64:定义了 Base64 的编码和解码。Base64 编码详情请参考:RFC 2045

  • Base64InputStream:以流方式(无限大小)提供base 64编码和解码。

  • BinaryCodec:在 “0” 和 “1” 的字节数组和字符串之间进行转换。

  • Hex:转换十六进制字符串。

消息摘要编码器

  • DigestUtils:简化了常见的MessageDigest任务,并提供了与GNU libc crypt(3)兼容的密码哈希函数。

语言编码器

  • Caverphone 1.0:将字符串编码为 Caverphone 1.0 值。

  • Caverphone 2.0:将字符串编码为 Caverphone 2.0 值。

  • Cologne Phonetic:将字符串编码为科隆语音(Cologne Phonetic)值。

  • Double Metaphone:将字符串编码为双 Metaphone 值。

  • Metaphone:将字符串编码为Metaphone值。

  • Refined Soundex:将字符串编码为完善的Soundex值。

  • Soundex:将字符串编码为Soundex值。

网络编码器

  • BCodec:与 RFC 1521 定义的 Base64 编码相同,并允许指定字符集。

  • QCodec:类似于 RFC 1521 中定义的 “加引号可打印的内容传输编码”,该设计旨在允许在 ASCII 终端上无需解码就可以解密包含大部分ASCII字符的文本。

  • Quoted Printable Codec:RFC 1521 的 Quoted-Printable 部分的编解码器。

  • URLCodec:实现 www-form-urlencoded 编码方案,也被误称为 URL 编码。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号