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 编码。