导出Word内容全部乱码问题
解决导出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内容全部乱码问题相关推荐
- Java用Freemarker导出word 内容换行
最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 一.模板的制作 先用Word做一个模板 ...
- SpringBoot整合Freemarker导出word文档表格
freemarker模板里面的template.process()方法里传入的第一个参数Object类型,如果是一个实体类对象在模板上怎么进行渲染,将实体类的值取出 freemarker会调用Obje ...
- spring boot 根据模板导出word功能实现,包含html内容,及office打开乱码问题的解决!!!
使用freemark来实现 yml配置文件: template-loader-path: classpath:/templates/ftl/ 这个是配置模板所在的位置 这里的配置要是带"/& ...
- vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件
所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...
- Springboot 项目导出word文档(文档内容包括数据以及服务器图片)
Springboot 项目freemarker导出word文档(文档内容包括数据以及服务器图片) 前些天有需求要完成导出word文档功能,基础数据导出word文档,网上也能搜到很多源代码,但是我这边要 ...
- java 导出word 乱码问题,如何解决POI生成WORD中文乱码问题?
需求:因为系统用户需要把合同,产品,证书导出WORD. 设计:写好合同,产品,证书的模板,然后读取模板,写入WORD,最后弹出窗口让用户保存. 我写了二个方法,但是感觉方法一对以后的表单问题不能解决, ...
- poi导出word时替换的段落内容会多出一个}和逗号_办公族必备11个Word文字处理技巧,太实用了!...
Hello,各位叨友们好呀!我是叨叨君~ 在使用Word的过程中,大家经常会被一些小问题折磨到不行,这里叨叨君为大家整理了11个常见问题,专治Word疑难杂症! 01 打字时后面的字消失了 先来个简单 ...
- 关于JAVA导出word或者excel文件中文乱码问题解决
搜了一下,发现网上都是解决文件名乱码的问题,这里记录一下从数据库查询出的数据写入文件中文乱码的问题 个人采用的是对象查询出来以后转为json字符串,然后字符串进行转码,再转成jsonObject格式 ...
- jquery word export 导出html内容无样式或无图片问题
1. 首先要准备好对应的js文件 jquery文件,FileSaver,以及主要的jquery.wordexport <script type="text/javascript&quo ...
最新文章
- Python之操作RabbitMQ
- html的编辑器有几种,各种系统下HTML用哪种编辑器
- Reverse Integer
- C/C++语言链表的排序与查找定位
- [转]opensuse vim 的语法高亮
- 数据结构 - 从二叉搜索树说到AVL树(一)之二叉搜索树的操作与详解(Java)
- python批量读取dbf_Python 读取DBF/FPT 文件
- windowbuilder点击按钮出现新界面_掌握这几招,轻松设计出高点击率的行为召唤按钮...
- python自动化从零开始_从零开始学Selenium自动化测试:基于Python:视频教学版
- Docker基本命令入门
- 关于delete字符串 需不需要加 [ ]
- Mac 系统下 配置多个ssh-key (git sourcetree)
- 最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?
- Java实现黑客帝国代码雨(待机屏保)
- 制作svg格式矢量图
- 【CQF Finance Class 3 债券】
- 测试场景设计-登录设计
- LNMT架构部署:Linux+Nginx+Mysql+Tomcat
- Android应用开发——记事本
- VMware虚拟机如何联网详解
热门文章
- 2020年中国血液制品行业发展现状分析,行业集中度不断提升「图」
- Chief Architect Premier X10 for Mac v20.2.3.3 破解版 专业家居设计软件
- 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真
- 纪客老白【每日答疑】设备的背板设计问题!
- oracle安装 sysi,在Oracle 10g 中如何以sys的身份登录isqlplus页面
- Perl Data::Dumper模块介绍
- 如何判断信号强度android,手机查询信号强度的方法(Android和iPhone手机方法不同)...
- bootstrap动态调用select下拉框
- css样式超出部分省略号
- 百变球球服务器几点停止维护,百变球球闪退怎么办?百变球球闪退解决方法