精华内容
下载资源
问答
  • 导出文件乱码问题处理(java)

    千次阅读 2021-02-12 13:03:52
    最近在处理业务时,之前一个很正常的功能,因为换了一个服务器环境(由windows到linux),导出文件时文件名fileName突然就变成了乱码,无论如何转变编码方式,总不得其解,最终采用无论前后台,均不通过转为GBK或先...

    最近在处理业务时,之前一个很正常的功能,因为换了一个服务器环境(由windows到linux),导出文件时文件名fileName突然就变成了乱码,无论如何转变编码方式,总不得其解,最终采用无论前后台,均不通过转为GBK或先转为ISO-8850-1再转为GBK和UTF-8的方式,而是直接前后统一使用UTF-8编码才正常。

    最开始使用方法(代码中用了6年的方法):

    fileName = new String(infor.getBytes("GB2312"), "ISO-8859-1");

    response.setHeader("Content-disposition", "attachment; filename="

    + fileName);

    5330167.html

    最新版产品中,更新新乐jdk1.7,在linux环境下时,以该种方式下,导出文件在ie直接乱码,在chrome中呈现“-----”乱码符号。

    一开始以为是GB2312不能转换一些特殊汉字导致,改为GBK,问题依旧;

    后来想着是不是需要转为统一UTF-8编码,还是不行。

    在网上搜索资料,有人提到,ie和火狐等其他浏览器需要分开判断于是有了下面的解决方案:

    5330167.html

    String userAgent = request.getHeader("User-Agent");//针对IE或者以IE为内核的浏览器:

    if (userAgent.contains("MSIE")||userAgent.contains("Trident")) {

    fileName= java.net.URLEncoder.encode(fileName, "UTF-8");

    }else{//非IE浏览器的处理:

    fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");

    }

    response.setHeader("Content-Type","application/msexcel");

    response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));

    response.setContentType("application/vnd.ms-excel;charset=utf-8");

    经过这次修改,ie下如愿以偿的得到了正确编码,但是chrome问题依旧,最后干脆就直接采用统一的编码,前后端都用UTF-8,均不通过转为GBK或先转为ISO-8850-1再转为GBK和UTF-8的方式,直接采用

    5330167.html

    //采用该种方法

    fileName = java.net.URLEncoder.encode(fileName, "UTF-8");

    response.setHeader("Content-Type","application/msexcel");

    response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));

    response.setContentType("application/vnd.ms-excel;charset=utf-8");

    这下不论是在ie还是在chrome,都呈现了正常编码。问题得以解决。

    另外贴上开源中国"taote"老师的一篇文章--java字符集编码:

    展开全文
  • 往往开发环境和生产环境在环境部署时会遇到很多奇怪的问题,此次word文档下载就被卡住了,通过一番努力终于找到了原因,分享给大家。上传文件txt格式,内有方法详细的代码注释及原因说明,jar包比较常见,大家自行...
  • Tomcat导出文件乱码问题

    千次阅读 2018-08-16 15:53:23
    现象:tomcat下载excel文件,中文文件名显示正常,文件内容显示乱码; 排查:系统字符集LANG=en_US.UTF-8,tomcat设置URI编码为utf-8,依旧乱码; 解决:非tomcat问题,为tomcat调用后端api时,api流处理问题,...

    现象:tomcat下载excel文件,中文文件名显示正常,文件内容显示乱码;

    排查:系统字符集LANG=en_US.UTF-8,tomcat设置URI编码为utf-8,依旧乱码;

    解决:非tomcat问题,为tomcat调用后端api时,api流处理问题,Response返回不对;

    开发解决掉流处理问题后,即使不设置tomcat的URI编码,也能正常显示excel中文内容。

     

    以下为tomcat相关乱码问题,留着参考

    tomcat编译乱码问题

    https://blog.csdn.net/Howard_Nan/article/details/51426236

     

    vue2.x 下载后台传过来的流文件(excel)后乱码问题

    https://www.cnblogs.com/cynthia-wuqian/p/7927621.html

     

    Tomcat服务器图片地址中文路径问题解决办法

    https://www.jb51.net/article/65694.htm

    server.xml中两处Connector配置URIEncoding="UTF-8" 参数

     

    Tomcat7下项目切换到Tomcat8后,出现乱码

    https://blog.csdn.net/u014746965/article/details/50267561

    Tomcat7对URI默认编码是ISO-8859-1        7版本之前的默认编码好像都是这个
    Tomcat8对URI默认编码是UTF-8

    展开全文
  • 本篇文章主要介绍了如何解决springboot读取配置文件的中文乱码问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看
  • 我最近在开发时遇到了文件另存为时文件名出现乱码,在火狐上正常的文件名,在IE中又出现乱码问题,然后好不容易在IE下调试好了文件名乱码问题,在火狐下又出现乱码,最后终于感觉这样是能解决了。具体如下:
  • 近日在服务器端通过导出csv文件,将数据linux服务器端保存到windows桌面端,以便用户可以通过excel打开使用数据。但是在使用excel打开csv文件时,出现了中文乱码的情况,但是使用记事本打开没有问题。经过分析,...

    近日在服务器端通过导出csv文件,将数据从linux服务器端保存到windows桌面端,以便用户可以通过excel打开使用数据。

    但是在使用excel打开csv文件时,出现了中文乱码的情况,但是使用记事本打开没有问题。

    经过分析,原因如下:

    1)linux服务器端采用的是zh_CN.utf-8编码方式;

    2)windows的excel打开csv文件默认是使用ansi(gbk)编码方式;

    这样就导致excel打开乱码的现象。

    解决方案:

    1.在服务器端代码中增加转码操作,由于是整个文件,故采用iconv命令行方式进行整体转码,然后通过system调用shell来实现;

    2.判断system是否调用成功,需要查看system的返回值。这里不展开讨论,网上有很多说明。关键字:system 返回值  signal 。

    Linux 解决Linux下火狐浏览器中文乱码成方块显示问题

    解决Linux下火狐浏览器中文乱码成方块显示问题 by:授客 QQ:1033553122   测试环境: CentOS-6.0-x86_64 问题描述: 浏览器页面显示如下   解决方法: 安装中文支 ...

    问:Linux下Chrome标题栏中文乱码

    From:http://blog.csdn.net/loveaborn/article/details/29579787 在使用Linux的时候你会遇到一些奇奇怪怪的问题,不过,你会在解决这些问题的过 ...

    linux下文件解压缩中文乱码问题的解决

    将带中文文件名的压缩文件上传到服务器,使用unzip解压后,文件名乱码: 临时解决方法: 通过unzip行命令解压,指定字符集unzip -O CP936 xxx.zip (用GBK, GB18030 ...

    linux 下 WebSphere日志中文乱码

    管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm参数设 ...

    linux下firefox显示中文乱码的问题

    只需要yum install "@Chinese Support" 然后注销,再登录一下,刷新浏览器就可以正常显示中文了,当然前提是浏览器的字符编码为utf-8以及默认显示中文,这 ...

    linux下oracle查询中文乱码

    export NLS_LANG=AMERICAN_AMERICA.UTF8

    linux下打开txt显示乱码的解决方法

    Linux打开txt文件乱码的解决方法   Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb1 ...

    SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题

    一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_ ...

    解决Linux文档显示中文乱码问题以及编码转换

    解决Linux文档显示中文乱码问题以及编码转换 解决Linux文档显示中文乱码问题以及编码转换 使vi支持GBK编码 由于Windows下默认编码是GBK,而linux下的默认编码是UTF-8,所以打 ...

    随机推荐

    mui 手势事件配置

    在开发中监听双击屏幕事件时不起作用,需要在mui.init方法的gestureConfig参数中设置需要监听的手势事件 手势事件配置: 根据使用频率,mui默认会监听部分手势事件,如点击.滑动事件:为 ...

    js暂停的函数

    // numberMillis 毫秒 function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() ...

    【leetcode】Unique Binary Search Trees

    Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that st ...

    pixel实践

    安装pixel .安装node.js wget http://nodejs.org/dist/v0.6.1/node-v0.6.1.tar.gz 本地测试下载的是这个版本,如果要高版本的话可以找高版本 ...

    如何判断一个C++对象是否在堆栈上(通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了),附许多精彩评论

    昨天有人在QQ群里问到如何判断一个C++对象是否在堆栈上, 我在网上搜索了下, 搜到这个么一个CSDN的帖子http://topic.csdn.net/t/20060124/10/4532966. ...

    C#遍历获取枚举的值,名和属性

    获取: Type type = typeof(ParamServiceType); var values = Enum.GetValues(type); ; i < values.Length; ...

    Apriori算法&lpar;C&num;&rpar;

    AprioriMethod.cs using System; using System.Collections.Generic; using System.Linq; using System.Web ...

    Android各种Manager

    一.PowerManager 主要是用来控制电源状态,设置屏幕状态,和电池待机状态 PowerManager  pm = ((PowerManager)getSystemService(POWER_S ...

    工作整理&colon; python报表系统常见错误整理

    1.一般收不到邮件是因为配置文件邮箱写错 2.如果报表数据不对,看数据插入的时候是否再次写入产生冲突 3.如果收不到报表某些组别的excel查看组别名称是否匹配正确,是否匹配成功,不成功无法发送

    ABP中的拦截器之ValidationInterceptor&lpar;下&rpar;

    在上篇我分析了整个ABP中ValitationInterceptor的整个过程,就其中涉及到的Validator过程没有详细的论述,这篇文章就这个过程进行详细的论述,另外任何一个重要的特性如何应用是最 ...

    展开全文
  • 文章目录一次解决Easypoi导出Excel文件打开乱码问题的过程前言解决问题过程排查最近的变更最近做了什么代码变更?最近做了什么配置变更?定位问题前端问题还是后端问题?Maven依赖冲突问题?Linux环境问题?Easypoi...

    一次解决Easypoi导出Excel文件打开乱码问题的过程

    前言

    项目中使用Easypoi来导出Excel,上线后是正常的,过了段时间,测试反馈导出的Excel文件打开乱码,打开Excel文件时提示“文件格式和扩展名不匹配…文件可能已损坏或不安全”。

    导出Excel过程:

    1. 前端发起一个POST请求;

    2. 后端响应请求,在导出Excel文件时,在HTTP头部设置Content-Typeapplication/vnd.ms-excel,并且设置字符集为UTF-8, 并通过设置Content-Dispositionattachment;filename=...来让浏览器下载附件。

    后端代码示例:

    Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
    
    response.setCharacterEncoding("UTF-8");
    response.setContentType("application/vnd.ms-excel; charset=utf-8");
    response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
    
    workbook.write(response.getOutputStream());
    

    解决问题过程

    排查最近的变更

    最近做了什么代码变更?

    1. 排查了后端代码,没有改动过导出部分的代码;
    2. 前端也反馈,没有改动过导出部分的代码。

    最近做了什么配置变更?

    团队反馈最近没有做过什么“可疑”的变更。

    定位问题

    前端问题还是后端问题?

    因为通过Postman的Send and download测试,导出的Excel也有同样的问题。

    因此可以排除是前端问题。

    Maven依赖冲突问题?

    团队反馈最近在parent项目中的pom.xml有引入xxl-tools,而xxl-tools也有Excel导出功能,会不会和Easypoi的导出功能有冲突?

    但是这个项目中并没有xxl-tools依赖,用IDEA查看Maven依赖图也证实了这一点。

    并且parent项目中是以dependencyManagement来引入xxl-tools,也就是只有子项目明确引入了xxl-tools,才会有xxl-tools依赖。

    因此可以排除是Maven依赖冲突问题。

    Linux环境问题?

    运行echo $LANGlocale命令比较了几台测试服务器的Linux环境配置,没有发现异常。

    在项目中编写测试代码,导出文件时直接生成Excel文件并保存在服务器上,再手工从服务器上下载Excel文件到本地打开,没有问题。

    因此可以排除是Linux环境问题。

    Easypoi问题?

    项目中引入的Easypoi已经指定了特定版本,并且之前导出是正常的,Easypoi的嫌疑不大。

    稳妥起见,改成用原始的Apache Poi来导出,一样有问题。

    因此可以排除是Easypoi库的问题。

    网关问题?

    前端发起请求时,会先通过网关,再由网关转发到后端来处理,所以网关也有嫌疑。

    测试不经过网关,直接调用项目的导出Excel接口,果然没有问题。

    网关是我们基于Spring Cloud Gateway定制的,里面定义了几个拦截器(filter)来对HTTP request和HTTP response做了日志记录、格式转换和异常处理等。

    查看网关代码,最近并没有可疑的改动。

    但是看到一个记录日志的拦截器代码中在某些情况时会对HTTP response重写,重点怀疑。

    通过开关,关闭该拦截器后,测试正常。

    终于抓到真凶了。

    虽然该拦截器代码最近并没有改动过,但是之前环境上该拦截器没有开启,所以导出是正常的,后来不知道什么时候开启了这个拦截器,就影响到导出功能了。

    解决问题

    修改有问题的拦截器,根据接口URL来判断,对导出文件时直接跳过该拦截器。

    测试通过。

    小结

    本文通过一次排查导出Excel文件问题的过程,描述了在导出文件过程的前端、网关和后端服务(接口、库、服务器)的各个阶段都可能存在的故障点,提供了排查类似问题的参考。

    参考文档

    展开全文
  • excel 导出文件名乱码

    2021-08-06 09:18:50
    因为经常要用到导出功能,之前因为文件名乱码,所以都用英文或是拼音缩写来代替,今天特意要接觉下这个问题。顺便记录下。望对小白有用。/*** 导出结算详情列表* @return*/public void depositLogExport(){String ...
  • 记录一个excel导出遇见的中文名称的问题接到项目需要有excel的导入导出功能,基于poi实现还是挺简单的,文件的导入导出都已经实现,但是导出给前台的文件名称总是乱码,一开始以为是我后台的问题,我找解决方法找了...
  • 导出文件直接报500错误,导出的文件直接乱码显示在网页中。如下图: 排查原因是因为下载的文件乱码所致。 解决方法:将文件标题使用urlencode()转码。如下图: 问题解决。 注:下载报错有很多原因造成,我...
  • 最近一个项目开发要用到PHP技术导出Word文档,比较了几种方案,首先是使用Microsoft Office自带的ActiveX/COM组件,比如Word.Application,这种方式的优点是格式兼容度高,可以生成纯doc的Word2003格式文档,缺点一...
  • 在本机eclipse启动导出excel不乱码,linux服务器是zh-cn.utf-8,项目都是utf-8的,导出的时候一直乱骂,请教大神帮我解决一下
  • 图示如下: 不能解决导出Word乱码的代码如下: 主要原因是因为存在表里的字段包含charset=gb2312" 这种文本内容 又不能去修改数据库 手动测试过要是改成UTF-8导出就没问题。但是这种操作不可取呀!
  • 但是将服务部署在服务器linux上,转换出来的PDF中文就出现了乱码,变成一个个的小方格,小编进行远程调试后发现,在生成word文件的时候没有发生乱码,而是DOC文件转换成PDF时就会发送乱码,对此在这里记录一下解决...
  • asp.net导出Excel显示中文乱码的解决方法,需要的朋友可以参考一下
  • vue 解决导出excel 乱码问题

    千次阅读 2020-12-02 10:15:16
    已设置responseType:'blob',相同的代码,在两个前端门户中,一个正常,一个导出乱码(最怕这种问题) 于是乎开始了漫长的找坑之旅 先看代码: axios({ method: 'post', url: `/downloadUrl`, // 请求地址 ...
  • ansi编码文件服务器上显示乱码 内容精选换一换在Git客户端中,提交文件时,如果文件名是中文,会出现乱码。避免中文文件名出现乱码的几种提交场景操作方法如下表所示。在Linux及托管网站上默认的字符编码均是UTF-8...
  • 2、导出文件乱码还会导致Jenkins构建测试失败 3、针对此问题,我们可以把返回内容重新生成一个文件,保存到服务器上,然后判断文件是否生成成功(后续还可以以针对实际业务判断文件大小及文件内容是否符合预期,此处...
  • 解决mysql导入导出数据乱码问题首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,例如下面的代码:复制代码代码如下:mysqldump -uroot -p --default-character-...
  • 共享文件服务器怎么导出配置 内容精选换一换该任务指导用户使用Loader将数据HBase导出到SFTP服务器。创建或获取该任务中创建Loader作业的业务用户和密码。确保用户已授权访问作业执行时操作的HBase表或phoenix表。...
  • ----------------------------------////Oracle端的编码: select userenv('language') from dual -----------------------////LINUX服务器的...----------------------------------------------//导出命...
  • 今天和同事一起运行公司的代码下载文件,同事可以下载下来,而我的确无法下载,经过仔细查看,是因为我们用的tomcat版本不一样,我用的tomcat7.0,同事用的8.0,导致默认的编码集格式不一样,7.0默认的为iso-8859-1...
  • 网上很多介绍是由于jdk中的没有字体导致乱码,而我遇到的是转换过程并未报错,但转换后的PDF中是乱码,尝试在jre/lib/fonts/中增加字体,还是不能解决问题,因此可以判断非jre字体问题,是linux系统字体问题。...
  • //attachment就是附件的形式返回,不加attachment就是文件流输出到前端,即乱码现象 response.setHeader("Content-Disposition", "attachment;filename="+"xxx.pdf"); pdf附件返回代码:简单粗暴 @...
  • 实现MRS与关系型数据库、文件系统之间交换“数据”、“文件”,同时也可以将数据关系型数据库或者文件服务器导入到HDFS/HBase中,或者反过来HDFS/HBase导出到关系型数据库或者文件服务器中。Loader模型主要由...
  • Svg图片导出中文乱码问题解决

    千次阅读 2019-12-18 19:05:35
    将SVG的Dom对象用batik-all转为图片导出时出现了图片中的中文乱码问题,在页面上展示正常,其原因是svgDOM对象未设置编码或设置的编码格式不对。 svgdom.setAttribute("encoding","UTF-8"); 加入编码属性后,问题...
  • 网上挺多原因是因为在启动项目...我的问题截然相反,没有加这一行参数,导致文件解析乱码。但原理相同。都是因为file.encoding跟操作系统默认字符集冲突。 解决方案:在启动时,加入-Dfile.encoding=UTF-8就好了 如:j
  • 这个bug太太太太,磨人了 ,昨天下午找到今天下午!!!吐血了 直入正题: 后台返回是这样的:看图 ↓ 我的导出代码是这样的: export function exportExcel(url, params = {}) { return new Promise(...
  • java导出文件名乱码

    2021-03-27 21:24:53
    问题背景:javaWeb项目导出文件名乱码。本地window7调试项目导出文件名正常,线上linux(centos7)环境导出文化名乱码。 依据百度经验做尝试: **1)**使用String newStr = new String(“xxx”.getByte(“字符类型1”)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,342
精华内容 5,336
关键字:

从服务器导出文件乱码问题