做项目要生成Word文档时,一般都是先用Word把里面的内容写好,然后另存为mht文件,得到一个网页文件,这样程序就可以自动替换网页中得文件,然后让大家下载。

下载这里就不说了,很简单,如下处理一下就可以了。

String filename = new String("中文汉字.doc".getBytes(), "ISO8859-1");

response.setContentType("application/octet-stream");

response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");

response.setCharacterEncoding("GB2312");

在把word另存为mht时,打开mht发现里面的汉字全部变成了XXXX;这样的格式,被html转义了,正常人无法看懂。所以,我的解决办法是先把html转义字符转成汉字,然后把charset从us-ascii全部替换成gb2312,就哦了。

下面一段代码可以把html转义字符转成汉字。然后你打开文件,全局替换一下us-ascii成gb2312。

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Main {

public static void main(String[] args) {

try {

FileReader mhtReader = new FileReader("d:\\源文件.mht");

FileWriter mhtWriter = new FileWriter("d:\\生成文件.doc");

BufferedReader bufReader = new BufferedReader(mhtReader);

BufferedWriter bufWriter = new BufferedWriter(mhtWriter);

String line = bufReader.readLine();

String lines = "";

//中

Pattern pattern = Pattern.compile("(\\d+);");

while (line != null) {

if (line.endsWith("=")) {

lines += line.substring(0, line.length()-1);

line = bufReader.readLine();

continue;

} else {

if (!"".equals(lines)) {

lines += line;

line = lines;

lines = "";

}

Matcher matcher = pattern.matcher(line);

while (matcher.find()) {

char c = (char) Integer.parseInt(matcher.group(1));

line = line.replaceFirst(matcher.group(), String.valueOf(c));

}

bufWriter.write(line + "\r\n");

line = bufReader.readLine();

}

}

bufWriter.flush();

bufWriter.close();

bufReader.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

最后,打开转化好的文件,在的下一行,插入Print,这样用word打开时,就是视图模式了。

到这里就完美啦!

java mht 转换 html_Word单网页mht文件,汉字被html转义解决办法相关推荐

  1. Java使用Tomcat服务器打开jsp等文件出现源码的解决办法

    问题详情 在最近的Servlet的学习中,我意外的发现以前写在webapp文件夹里的页面文件使用idea打开全部都有问题. html文件 可以打开,但显示异常,大家可以看看有什么问题 导航栏显示如下: ...

  2. pdf英文转换成html网页,PDF文件转换成html网页文件小方法

    原标题:PDF文件转换成html网页文件小方法 现在不知道大家知不知道小学已经开设编程课程了.我记得我们小时候连上个微机课都是一种奢望,所以现在的孩纸还是很享福的呀.但是很多的小白估计听着代码.编程这 ...

  3. VS2010 LNK1123:转换到 COFF期间失败:文件无效或损坏”的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> " "LNK1123:转换到 COFF期间失败:文件无效或损坏"的解决方法 一.错误描述 之前写 ...

  4. Java 修改文件时间不生效以及解决办法

    Java 修改文件时间不生效以及解决办法 Java 修改文件更新时间 不生效原因 解决办法 Java 处理文件的时候,修改文件的更新时间,发现不生效,这里记录一下问题以及解决办法. 本文以修改照片时间 ...

  5. java ee ide 假死_Eclipse编辑jsp、js文件时卡死现象的解决办法汇总

    使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...

  6. 桌面html文件图标异常,.htm.html文件图标无法显示的解决办法

    .htm.html文件图标无法显示的解决办法 症状:后缀为Htm和Html的文件图标显示为未关联的.应用程序图标,并且通过常用的设置文件夹属性的方式修改不起作用,右键属性里改变默认打开程序也不起作用. ...

  7. 桌面html文件图标异常,.htm .html文件图标显示异常的解决办法

    .htm .html文件图标显示异常的解决办法 发布时间:2008-11-22 12:55:25   作者:佚名   我要评论 症状:后缀为Htm和Html的文件图标显示为未关联的应用程序图标,(看着 ...

  8. ClassCastException: java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject 的解决办法

    问题概述 关于这个问题,是与第三方公司合作,远程调用服务接口时(就相当于调用远程服务提供者)遇到的这个问题," java.lang.ClassCastException: java.lang ...

  9. 电脑中病毒所有html文件,电脑中了病毒所有文件都多了三个文件是什么原因以及解决办法...

    360安全卫士v10.3.0.2007官方最新版 类型:360工具大小:63M语言:中文 评分:7.9 标签: 立即下载 电脑中了病毒所有文件都多了三个文件是什么原因以及解决办法,最近不少人的电脑中了 ...

最新文章

  1. springboot+vue前后端分离实现宿舍管理系统
  2. reactjs 兄弟通信,父子通信
  3. datagridview新增列在最后_数说|科创板2020:募资额2200+亿超主板列A股第一,科技“千元股”、“市值王”长成...
  4. rm 空间不释放_rm删除文件之后,空间就被释放了吗?
  5. 利用Lombok编写优雅的spring依赖注入代码,去掉繁人的@Autowired
  6. 代码同时托管到github和git.oschina.net
  7. Java Web学习总结(32)——Java程序员最亲睐的Web框架
  8. FZU 1692 Key problem
  9. paip.asp vbs通过CLI命令行调用PHP代码
  10. iOS XCode 解决 error: Unable to load contents of file list
  11. c语言成绩管理程序设计,成绩管理程序设计报告(含代码C语言
  12. 如何用OKR搞垮一个团队
  13. 电缆公司如何面对企业改革?MES系统打造智能工厂
  14. OpenHarmony HDF Input框架模块 按键控制LED基于小熊派micro
  15. 苹果开放降级通道_iOS 12.2的验证通道已关闭,两款机型可降级!
  16. 【樂理】自然音階及其三和弦列表
  17. 毕业论文知识点记录(三)——SPSS去相关
  18. (python爬虫时)如何知道是否代理ip伪装成功
  19. 软件外包如何正确定价
  20. 艾科dell服务器系统安装教程,武汉swarm部署

热门文章

  1. SMBIOS信息概述 – DMI
  2. 牛客网:乘积为正数的最长连续子数组
  3. 一位15年资深HR直言:清退35岁以上基层员工,早已是公开秘密
  4. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告
  5. 唐天下文化传播:惹火2021公司新年年会,天下谁人不识君?
  6. DNF登陆的时候说连接服务器失败,请检查您的网络。是否启用修复程序进行修复?,要买春节套,DNF游戏安全组件发生异常强制退出怎么办?...
  7. C++实现二维快速傅里叶变换(FFT)
  8. Excel高效插入空行,2秒删除表格所有空行,实在太效率了
  9. 计算机网络笔记(3) 网络应用P2P架构
  10. vue 2.0系列QQ音乐播放器案例