java的quoted-printable解码器源代码
2015-08-30 14:32
501 查看
转自 http://www.qqread.com/java/c572396600.html
package test; import java.io.ByteArrayOutputStream; public class QuotedPrintable { public static void main(String[] args) { String a = "=BC=DA=A5=DF=A7Q=B3=A1=B8=A8=AE=E6=A1G[=AEi=C4=FD=B3]=ADp]HELLO INDUSTRY 4.0=A1A=A4u=B7~4.0=AE=C9=A5N=A5=BF=A6=A1=B1=D2=B0=CA=A1COLILY x OYA presents"; String b = qpDecoding(a); System.out.println(b); } /** * QuotedPrintable 解码 * @param str * @return */ public final static String qpDecoding(String str) { if (str == null) { return ""; } try { str = str.replaceAll("=\n", ""); byte[] bytes = str.getBytes("US-ASCII"); for (int i = 0; i < bytes.length; i++) { byte b = bytes[i]; if (b != 95) { bytes[i] = b; } else { bytes[i] = 32; } } if (bytes == null) { return ""; } ByteArrayOutputStream buffer = new ByteArrayOutputStream(); for (int i = 0; i < bytes.length; i++) { int b = bytes[i]; if (b == '=') { try { int u = Character.digit((char) bytes[++i], 16); int l = Character.digit((char) bytes[++i], 16); if (u == -1 || l == -1) { continue; } buffer.write((char) ((u << 4) + l)); } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } } else { buffer.write(b); } } return new String(buffer.toByteArray(), "big5");// big5 } catch (Exception e) { e.printStackTrace(); return ""; } } }输出结果: 歐立利部落格:[展覽設計]HELLOINDUSTRY4.0,工業4.0時代正式啟動。OLILYxOYApresents
相关文章推荐
- JAVA进阶路线图
- springmvc + freemarker 实现hello-world
- 搭建eclipse+github开发环境
- Java IO流->处理流->“随机访问” 的方式:RandomAccessFile
- Java单例你所不知道的事,与Volatile关键字有染
- Eclipse注释模板
- Eclipse启动时报错Java was started but returned exit code=13
- javaBean的学习(8.27)
- ubuntu14.04 安装eclipse
- java中怎么用Scanner
- [转]Spring 中的p标签
- JAVA基础学习(二)--标识符、关键字、数据类型与运算符
- javaWEB开发遇到的400(一)
- 用Java编写的简易计算器
- Java学习笔记之——多线程(二)
- 传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(day01~day10)(2015年11月17日20:51:59)
- Java 8十个lambda表达式案例
- Java Lambda表达式入门
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
- 从根本上改变我们开发Java程序的方式:Lambda