解决导出Word内容乱码的正确方法:

   public IZrarResponse bzdsexport(IZrarRequest req) throws Exception {IZrarResponse res = new ZrarResponse();String zlcode = req.getParameter("zlcode");String zlnrsql = "select zlnr from zl_info_nr where zlcode=?";ByteArrayOutputStream stream = daozsk.getBlob(zlnrsql, "zlnr", new Object[] {zlcode});String zltitlesql = "select zltitle from zl_info where zlcode=?";ZlInfoBO zlinfobo = daozsk.getBean(zltitlesql,ZlInfoBO.class, Arrays.asList(zlcode));String zltitle = zlinfobo.getZltitle();zltitle = zltitle +".doc";//系统类型String xtlx = PropertyZskManager.getProperty("xtlx","zsk");byte[] b = null;b = stream.toByteArray();stream.close();Blob fnr = daozsk.createBlob(b);if("Windows".equals(xtlx)){InputStream bais= fnr.getBinaryStream();res.addInputStream(bais,zltitle,b.length);}else {InputStream bais= fnr.getBinaryStream();zltitle = new Date().getTime() + ".doc";res.addInputStream(bais,zltitle,b.length);}return res;}

导出的内容由于是CLOB类型的字段,数据量较大,在获取的时候采用了getBlob的方法,返回类型是字节数组输出流ByteArrayOutputStream 。

ByteArrayOutputStream stream = daozsk.getBlob(zlnrsql, "zlnr", new Object[] {zlcode});

得到输出流stream后,在使用:

byte[] b = null;
b = stream.toByteArray();
stream.close();
Blob fnr = daozsk.createBlob(b);

把stream转换成一个字节数组,关闭流。把得到的字节数组存放到一个Blob里面去。

InputStream bais= fnr.getBinaryStream();
res.addInputStream(bais,zltitle,b.length);

从存放的Blob中取到这个值,转成二进制流,返回类型是输入流。最后直接输出。就能导出Word,不会出现乱码。图示如下:

不能解决导出Word乱码的代码如下:

主要原因是因为存在表里的字段包含charset=gb2312"

<meta http-equiv=Content-Type content="text/html; charset=gb2312">

这种文本内容 又不能去修改数据库 手动测试过要是改成UTF-8导出就没问题。但是这种操作不可取呀!

导出Word内容全部乱码问题相关推荐

  1. Java用Freemarker导出word 内容换行

    最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 一.模板的制作 先用Word做一个模板 ...

  2. SpringBoot整合Freemarker导出word文档表格

    freemarker模板里面的template.process()方法里传入的第一个参数Object类型,如果是一个实体类对象在模板上怎么进行渲染,将实体类的值取出 freemarker会调用Obje ...

  3. spring boot 根据模板导出word功能实现,包含html内容,及office打开乱码问题的解决!!!

    使用freemark来实现 yml配置文件: template-loader-path: classpath:/templates/ftl/ 这个是配置模板所在的位置 这里的配置要是带"/& ...

  4. vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件

    所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...

  5. Springboot 项目导出word文档(文档内容包括数据以及服务器图片)

    Springboot 项目freemarker导出word文档(文档内容包括数据以及服务器图片) 前些天有需求要完成导出word文档功能,基础数据导出word文档,网上也能搜到很多源代码,但是我这边要 ...

  6. java 导出word 乱码问题,如何解决POI生成WORD中文乱码问题?

    需求:因为系统用户需要把合同,产品,证书导出WORD. 设计:写好合同,产品,证书的模板,然后读取模板,写入WORD,最后弹出窗口让用户保存. 我写了二个方法,但是感觉方法一对以后的表单问题不能解决, ...

  7. poi导出word时替换的段落内容会多出一个}和逗号_办公族必备11个Word文字处理技巧,太实用了!...

    Hello,各位叨友们好呀!我是叨叨君~ 在使用Word的过程中,大家经常会被一些小问题折磨到不行,这里叨叨君为大家整理了11个常见问题,专治Word疑难杂症! 01 打字时后面的字消失了 先来个简单 ...

  8. 关于JAVA导出word或者excel文件中文乱码问题解决

    搜了一下,发现网上都是解决文件名乱码的问题,这里记录一下从数据库查询出的数据写入文件中文乱码的问题 个人采用的是对象查询出来以后转为json字符串,然后字符串进行转码,再转成jsonObject格式 ...

  9. jquery word export 导出html内容无样式或无图片问题

    1. 首先要准备好对应的js文件 jquery文件,FileSaver,以及主要的jquery.wordexport <script type="text/javascript&quo ...

最新文章

  1. Python之操作RabbitMQ
  2. html的编辑器有几种,各种系统下HTML用哪种编辑器
  3. Reverse Integer
  4. C/C++语言链表的排序与查找定位
  5. [转]opensuse vim 的语法高亮
  6. 数据结构 - 从二叉搜索树说到AVL树(一)之二叉搜索树的操作与详解(Java)
  7. python批量读取dbf_Python 读取DBF/FPT 文件
  8. windowbuilder点击按钮出现新界面_掌握这几招,轻松设计出高点击率的行为召唤按钮...
  9. python自动化从零开始_从零开始学Selenium自动化测试:基于Python:视频教学版
  10. Docker基本命令入门
  11. 关于delete字符串 需不需要加 [ ]
  12. Mac 系统下 配置多个ssh-key (git sourcetree)
  13. 最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?
  14. Java实现黑客帝国代码雨(待机屏保)
  15. 制作svg格式矢量图
  16. 【CQF Finance Class 3 债券】
  17. 测试场景设计-登录设计
  18. LNMT架构部署:Linux+Nginx+Mysql+Tomcat
  19. Android应用开发——记事本
  20. VMware虚拟机如何联网详解

热门文章

  1. 2020年中国血液制品行业发展现状分析,行业集中度不断提升「图」
  2. Chief Architect Premier X10 for Mac v20.2.3.3 破解版 专业家居设计软件
  3. 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真
  4. 纪客老白【每日答疑】设备的背板设计问题!
  5. oracle安装 sysi,在Oracle 10g 中如何以sys的身份登录isqlplus页面
  6. Perl Data::Dumper模块介绍
  7. 如何判断信号强度android,手机查询信号强度的方法(Android和iPhone手机方法不同)...
  8. bootstrap动态调用select下拉框
  9. css样式超出部分省略号
  10. 百变球球服务器几点停止维护,百变球球闪退怎么办?百变球球闪退解决方法