包装类Codec
1.1 Codec
■ 概况:提供常用的编码器和解码器。
■ 官方资源:主页,二进制,源代码。
■ 何时适用:当你需要Base64和Hex编码功能的标准实现之时。
■ 示例应用:CodecDemo.java。要求CLASSPATH必须包含commons-codec-1.1.jar。
■ 说明:
Codec里面的类分成两个包,其中一个包实现的是常用的Base64和Hex编码机制,另一个包是语言、语音方面的编码。两个包的用法相似,鉴于语言、语音的编码并不是很常用,所以下面主要介绍第一个包。
Base64编码主要用于Email传输。定义MIME文档传输的RFC规定了Base 64编码,从而使得任何二进制数据都可以转换成可打印的ASCII字符集安全地传输。例如,假设要通过Email传输一个图形文件,Email客户端软件就会利用Base64编码把图形文件的二进制数据转换成ASCII码。在Base64编码中,每三个8位的字节被编码成一个4个字符的组,每个字符包含原来24位中的6位,编码后的字符串大小是原来的1.3倍,文件的末尾追加"="符号。除了MIME文档之外,Base64编码技术还用于BASIC认证机制中HTTP认证头的"用户:密码"字符串。
Base64类的使用相当简单,最主要的两个静态方法是:Base64.encodeBase64(byte[] byteArray),用于对字节数组中指定的内容执行Base64编码;Base64.decodeBase64(byte[] byteArray),用于对字节数组中指定的内容执行Base64解码。另外,Base64还有一个静态方法Base64.isArrayByteBase64(byte[] byteArray),用于检测指定的字节数组是否可通过Base64测试(即是否包含了经过Base64编码的数据,如前所述,Base64编码的结果只包含可打印的ASCII字符)。
Hex编码/解码就是执行字节数据和等价的十六进制表示形式之间的转换。Hex编码的编码、解码过程和Base64相似.
1.1 Codec
■ 概况:提供常用的编码器和解码器。
■ 官方资源:主页,二进制,源代码。
■ 何时适用:当你需要Base64和Hex编码功能的标准实现之时。
■ 示例应用:CodecDemo.java。要求CLASSPATH必须包含commons-codec-1.1.jar。
■ 说明:
Codec里面的类分成两个包,其中一个包实现的是常用的Base64和Hex编码机制,另一个包是语言、语音方面的编码。两个包的用法相似,鉴于语言、语音的编码并不是很常用,所以下面主要介绍第一个包。
Base64编码主要用于Email传输。定义MIME文档传输的RFC规定了Base 64编码,从而使得任何二进制数据都可以转换成可打印的ASCII字符集安全地传输。例如,假设要通过Email传输一个图形文件,Email客户端软件就会利用Base64编码把图形文件的二进制数据转换成ASCII码。在Base64编码中,每三个8位的字节被编码成一个4个字符的组,每个字符包含原来24位中的6位,编码后的字符串大小是原来的1.3倍,文件的末尾追加"="符号。除了MIME文档之外,Base64编码技术还用于BASIC认证机制中HTTP认证头的"用户:密码"字符串。
Base64类的使用相当简单,最主要的两个静态方法是:Base64.encodeBase64(byte[] byteArray),用于对字节数组中指定的内容执行Base64编码;Base64.decodeBase64(byte[] byteArray),用于对字节数组中指定的内容执行Base64解码。另外,Base64还有一个静态方法Base64.isArrayByteBase64(byte[] byteArray),用于检测指定的字节数组是否可通过Base64测试(即是否包含了经过Base64编码的数据,如前所述,Base64编码的结果只包含可打印的ASCII字符)。
byte[] encodedBytes=Base64.encodeBase64(testString.getBytes());
String decodedString=new String(Base64.decodeBase64(encodedBytes));
System.err.println("\'^\'是一个合法的Base64字符吗?"
+ Base64.isArrayByteBase64(invalidBytes));
Hex编码/解码就是执行字节数据和等价的十六进制表示形式之间的转换。Hex编码的编码、解码过程和Base64相似.