Java使用Jacob转换Word为HTML 中文乱码
2016-08-22 12:54
1161 查看
做项目时遇到要把word文档显示在网页上,因为只有一个显示的小功能,所以就没有用pageoffice,而是选用了jacob把word文档转为html格式,直接嵌套在jsp页面上,但是遇到一个问题,就是jacob转换时默认编码格式是gb2312,显示在jsp里面就变成乱码了,捣鼓了挺久,试了很多办法都不行,终于想到一个办法,就是直接把html里面的gb2312格式替换成utf-8,在网上找了一段代码替换html文件的字符串的,但是只是‘纯粹替换字符串的话还不行,还要注意解码和编码时的格式问题,以下是源代码,其中红色标记是关键
public static void html2utf(String filePath) {
try {
String content = "charset=utf-8";
String templateContent = "";
FileInputStream fileinputstream = new FileInputStream(filePath);// 读取模板文件
// 下面四行:获得输入流的长度,然后建一个该长度的数组,然后把输入流中的数据以字节的形式读入到数组中,然后关闭流
int lenght = fileinputstream.available();
byte bytes[] = new byte[lenght];
fileinputstream.read(bytes);
fileinputstream.close();
// 通过使用默认字符集解码指定的 byte 数组,构造一个新的
//因为原来的html文件是gb2312格式,所以转为string时也要以GBK格式读取,不然依旧是乱码
templateContent = new String(bytes, "GBK");
templateContent = templateContent.replaceFirst("charset=gb2312", content);
// 因为已经替换字符串了,所以使用UTF-8字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
byte tag_bytes[] = templateContent.getBytes("UTF-8");
FileOutputStream fileoutputstream = new FileOutputStream(filePath);// 建立文件输出流
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
} catch (Exception e) {
System.out.print(e.toString());
}
}
public static void html2utf(String filePath) {
try {
String content = "charset=utf-8";
String templateContent = "";
FileInputStream fileinputstream = new FileInputStream(filePath);// 读取模板文件
// 下面四行:获得输入流的长度,然后建一个该长度的数组,然后把输入流中的数据以字节的形式读入到数组中,然后关闭流
int lenght = fileinputstream.available();
byte bytes[] = new byte[lenght];
fileinputstream.read(bytes);
fileinputstream.close();
// 通过使用默认字符集解码指定的 byte 数组,构造一个新的
//因为原来的html文件是gb2312格式,所以转为string时也要以GBK格式读取,不然依旧是乱码
templateContent = new String(bytes, "GBK");
templateContent = templateContent.replaceFirst("charset=gb2312", content);
// 因为已经替换字符串了,所以使用UTF-8字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
byte tag_bytes[] = templateContent.getBytes("UTF-8");
FileOutputStream fileoutputstream = new FileOutputStream(filePath);// 建立文件输出流
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
} catch (Exception e) {
System.out.print(e.toString());
}
}
相关文章推荐
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- java使用jacob 将word转换为pdf
- Java 使用jacob实现各类办公文档(ppt,Excel,word,text,imge)转换成PDF
- Java使用Velocity模板发送HTML格式邮件并解决中文乱码问题
- java使用jacob将word,excel,ppt转成html
- 使用Jacob调用word将word转换为html
- Java 使用jacob ppt文件转pptx,doc转docx;word 转html、pdf等
- 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。
- 使用Jacob实现html和word的相互转换
- Java使用poi将word转换为html
- Java使用poi将word转换为html
- 使用Jacob实现Word转换Html
- 关于java使用jacob调用word,ppt,excel等的转化为html的问题
- [转]java平台,使用openoffice将word转换为html