精华内容
下载资源
问答
  • 生产环境遇到一个问题,页面中有一个a标签 href为文件的路径,IE浏览器无法下载内容也为乱码,其他浏览器均正常。 <a href="https://xxx/attached/file/20191112090721_279.docx" target="_blank">奖励活动...

    生产环境遇到一个问题,页面中有一个a标签 href为文件的路径,IE浏览器无法下载,内容也为乱码,其他浏览器均正常。

    <a href="https://xxx/attached/file/20191112090721_279.docx" 
    target="_blank">奖励活动北京获奖名单</a>
    

    在这里插入图片描述

    一开始以为是不是使用这种方法 IE都不行,于是创建一个本地web项目,测试是正常的。

    在tomcat的web.xml文件里有如下配置

    ...
    ...
    <mime-mapping>
    	<extension>doc</extension>
    	<mime-type>application/msword</mime-type>
    </mime-mapping>
    ...
    ...
    ...
    

    发现没有docx 所以无法使用IE浏览器正确的打开或下载,加上docx的即可

    <mime-mapping>
    	<extension>docx</extension>
    	<mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type>
    </mime-mapping>
    

    浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理URL,因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确,浏览器可能会曲解文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。

    参考:MIME 类型

    展开全文
  • 文件保存下来后用excel打开,出现了乱码情况,真心烦。为什么?CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。明白了原因之后,我们只需要把CSV文件的编码方式修改成与Excel相同的编码...

    工作中,将python生成的中间结果文件写入CSV,经常这么干是不是?文件保存下来后用excel打开,出现了乱码情况,真心烦。为什么?

    这里写图片描述

    CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。明白了原因之后,我们只需要把CSV文件的编码方式修改成与Excel相同的编码方式就可以了。那怎么修改?

    这里写图片描述

    先将CSV用txt记事本打开,然后选择ANSI编码方式。另存为,点编码这里,这里的编码有这么几种选择。
    这里写图片描述

    选择ANSI,然后保存,再用Excel打开,就不会有乱码了。

    👏👏👏再看看我们以前的文章😃😃😃
    🌺 Excel中数据分析工具库-相关系数篇
    🌺 干货,手把手教会你做相关性分析
    🌺 5年数据分析路,小结。
    🌺 用户细分及画像分析
    🌺 K-近邻算法及实践

    欢迎关注,微信公众号“数据分析师之家
    扫描二维码 关注我们
    💁提供职业规划、简历指导、面试辅导服务哦
    QQ交流群:254674155
    在这里插入图片描述

    展开全文
  • 近期遇到一个问题 需要用做一个简单的下载 。但是在使用

    近期遇到一个问题 需要用<a>做一个简单的下载<a href="download/2014.docx">下载</a>或者<a href="download/2014.rar">下载</a> 。但是在使用过程中出现了问题,在IE情况下会直接打开 并且显示的是乱码。

    由于对html不是太熟悉 网上找了很多 最后发现原来是tomcat的配置问题。

    在tomcat 的web.xml中发现只有

     <mime-mapping>
            <extension>zip</extension>
            <mime-type>application/zip</mime-type>
        </mime-mapping><pre class="html" name="code"> <mime-mapping>
            <extension>doc</extension>
            <mime-type>application/vnd.ms-word</mime-type>
        </mime-mapping>
     
    


    没有docx和rar。不太愿意去修改配置文件。就将后缀名修改为zip,问题解决。

    展开全文
  • 最近项目遇到个问题,就是利用swagger下载excel时,得到的文件打开总是乱码,首先怀疑是response的content-type有问题,将application试遍了,“x-msdownload”,“vnd.ms-excel”,“vnd.openxmlformats-...

    最近项目遇到个问题,就是利用swagger下载excel时,得到的文件打开总是乱码,首先怀疑是response的content-type有问题,将application试遍了,“x-msdownload”,“vnd.ms-excel”,“vnd.openxmlformats-officedocument.spreadsheetml.sheet”,“octet-stream”这些试了都不行,具体的类型对应文件参考一下链接:https://blog.csdn.net/xiaojia_boke/article/details/81140647

    然后怀疑是不是写入文件后再回填response这种方式导致文件流操作有问题,因为写入本地和服务器的文件都是可以正常打开的,但是将文件写入response后就乱码了。于是将业务数据解析后的workbook直接写入response测试,结果还是乱码,排除这种猜测。

    然后在网上查阅资料,发现下载excel方式都大同小异,都是解析出workbook然后写入response,差异无非就是是否通过写临时文件来缓存写入下。后来想到是不是自己代码的问题,然后从网上现扒个代码,然后在另外一个工程里直接测试,因为那个工程没有集成swagger,所以直接写了个get请求,然后通过浏览器访问,结果下载的excel可以正常打开,对比代码,实现方式没啥差异,于是把工程的下载excel功能也通过浏览器直接访问来测试,结果果然是好使的,于是果断怀疑到swagger身上。。

    中间还用postman测试了下,之前没用postman测过这种下载文件的功能,这次新get到postman的2个使用技巧:

    1、下载文件就在send旁边这个下拉框里,选择“send and download”,不过这里下载的文件名称都是默认的response,不是我后台代码定义的那个文件名。

    2、后台下载的接口入参是@RequestBody对象的,postman在测试时在body-》raw-》选中json来填写入参,见上面的截图。

     

    最后来说说swagger的配置修改,在注解swagger配置时,给Docket加上配置new Docket(DocumentationType.SWAGGER_2)
                    .produces(Sets.newHashSet("application/octet-stream")),说明返回的是文件流即可成功下载excel。

    中间也给这个Docket改过 new Docket(DocumentationType.SWAGGER_2)
                    .consumes(Sets.newHashSet("application/octet-stream")),也给controller接口的@ApiOperation加过produces="application/octet-stream",后经测试发现是Docket.produces()起作用的。至于Docket的这些配置具体啥含义,需要接下来进一步研究。

     

    最后附上后台下载的大概逻辑代码,欢迎各位提出修改意见。

    1、controller的代码:

        @ApiOperation(value = "下载excel接口", notes = "前端页面点击下载操作时调用接口")
        @PostMapping("/downLoadRules")
        public void downLoadRules(
                @RequestBody @ApiParam(name = "rulesToDownLoad", value = "下载excel列表", required = true) List<RuleModel> rulesToDownLoad,
                HttpServletResponse response) {

            if (CollectionUtils.isEmpty(rulesToDownLoad)) {
                logger.error("待下载请求为空");
            }
            // 当前日期,用于导出文件名称
            String fileName ="Download_Rule_" + DateUtil.getDate("yyyyMMddHHmmss") + ".xlsx";
            boolean result = downLoadService.exportExcel(rulesToDownLoad, response, fileName);
        }

    2、解析后的workbook写入response:

    public boolean exportExcel(List<RuleModel> ruleModelList, HttpServletResponse response, String fileName){
            boolean downloadResult = false;
            response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            XSSFWorkbook workbook = getWorkBook(ruleModelList);
            if(workbook!=null){
                try{
                    //遗留问题:文件过大,可能写入效率过低,待优化
                    workbook.write(response.getOutputStream());
                }
                catch(Exception e){
                    logger.error("导出excel,写入workbook异常:{}", e.getLocalizedMessage());
                }finally {
                    try{
                        workbook.close();
                        downloadResult = true;
                    }
                    catch(IOException e){
                        logger.error("导出excel,关闭workbook异常:{}", e.getLocalizedMessage());
                    }
                }
            }
            return downloadResult;
        }

    3、根据业务解析出workbook:

    private XSSFWorkbook getWorkBook(List<RuleModel> ruleModelList) {
                //根据入参ruleModelList和模板templatePath解析出来的workbook对象
                FileInputStream excelFileInputStream = new FileInputStream(templatePath.getPath());
                 XSSFWorkbook workbook = new XSSFWorkbook(excelFileInputStream);
                excelFileInputStream.close();

                。

                。

                。


            return workbook;
        }

     

    后续:

    前两天直接改的swagger的整体配置:

    new Docket(DocumentationType.SWAGGER_2).produces(Sets.newHashSet("application/octet-stream"))

    最近同事联调代码发现所有的rest请求从swagger测试请求都是流的形式,这显然是不行的,影响了别的接口功能。

    后来从swagger测试,发现这里的Request Headers中Accept为“*/*”时下载的excel就不行,我在swagger配置为流"application/octet-stream"时,这里的Accept就是流的形式,然后下载的excel就是OK的。

    此处怀疑swagger默认是用json还是文本或者xml给解析了,考虑是不是我能在接口层面把这个请求的Accept绑定成流的形式,然后在接口定义的@PostMapping进入源码查看有好几个属性:

    感觉这个headers比较靠谱,直接给@PostMapping赋值如下:@PostMapping(value="/downLoadExcel", headers="application/octet-stream"),用swagger测试直接报错一堆js错误,还是配置不对,swagger不识别,然后在网上查阅资料,得给headers配置headers="Accept=application/octet-stream",再调试一切OK,说明这里的@PostMapping配置和swagger的配置有个对应关系,具体怎么映射,待后续研究明白了再补上~

     

     

     

    展开全文
  • 解决csv文件打开乱码的问题

    万次阅读 多人点赞 2019-03-13 16:28:42
    将数据库的数据导出为CSV文件,之后用excel打开,出现了乱码情况,真心无奈,感觉都要理转文了!╮(╯﹏╰)╭ 原因:CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。 解决办法:用...
  • 解决 记事本打开无乱码而用UE打开乱码现象
  • 打开Latex模板时,内容出现中文乱码

    千次阅读 2021-03-05 14:49:54
    打开Latex模板时,内容出现中文乱码 解决办法一: 把.tex文件先不用ctex或者是texstdio打开,先用记事本(自带记事本,notepad++等等)。可以发现显示不会乱码,然后把记事本的东西复制到tex中即可。 解决办法二: ...
  • 解决:记事本打开无乱码而用UE打开乱码现象   今天在win7下查看一个系统日志文件时,出现一个奇怪的现象,记事本打开无乱码而用UE打开乱码现象,后来才发现原来这是编码的问题。   乱码现象,如下图: 用记事本...
  • 使用POI把JavaBean转换成Excel下载下载发现内容乱码 大神帮帮忙啊!!!谢过了!!!![后台代码](https://img-ask.csdn.net/upload/201512/21/1450690074_248033.png)![前端代码]...
  • 浏览器打开pdf乱码

    万次阅读 2017-01-09 17:08:13
    前几天在测试项目的时候,无意间发现个bug——在下载pdf时如果选择打开则会出现乱码,然而保存pdf文件时却不会乱码。一开始,我以为是浏览器的设置问题,问了问度娘,说是没有ADOBE的缘故,于是乎,安装了个adobe ...
  • //System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)作用是方式中文文件名乱码"中文文件名" curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web....
  • 程序输入之后,记事本只显示name、addr,而int型数据均为乱码,请问如何解决这一问题?? #include #define SIZE 3 struct Student_type { char name[10]; int num; int age; char addr[15]; }stud[SIZE]; ...
  • excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写,通常都是纯文本文件。CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行...
  • 正确打开db文件的方式,避免乱码和无意义内容

    万次阅读 多人点赞 2018-11-28 11:34:27
    db文件如果用记事本或者Notepad++打开,会显示乱码,改变编码不能解决问题,如果用UltraEdit打开,可以看到进制数据,但是无意义的。 正确的方法有两种: (1)用sqlitespy打开下载网址为:...
  • 首先.csv文件用记事本打开是正常的,可以看到数据,然后用Excel打开点击保存后,再用记事本打开该.csv文件就变成乱码了。
  • python写入csv文件用excel打开乱码

    千次阅读 2019-06-29 14:48:56
    用以下代码写入csv文件,明明已经utf-8了,用Excel打开却是乱码,百度之后顺利找到解决方法, 原来把excel设置成自文本就行… import csv newfile = open('newone.csv','w',encoding='utf-8',newline='') wr = csv....
  • 在Python爬虫保存数据或者日常办公中需要下载csv文件,但是有时打开Excel文件后的中文字符是乱码,这时候该怎么办呢,本文将分享经验,如何解决Excel打开csv文件后中文乱码的问题。 2 问题解决 第1步 首先 来看一下...
  • 为什莫用记事本打开图片会乱码?(或者使用java代码:writeInt方法往文件中写入数据后,用记事本打开后会乱码)?
  • 文章目录微信QQ邮箱插件,附件Excel 无法打开,或者打开乱码问题1、表现形式2、具体形式3、原因 微信QQ邮箱插件,附件Excel 无法打开,或者打开乱码问题 1、表现形式 通过 Java 代码生成 Excel ,并通过邮件附件的...
  • myeclipse打开文件乱码

    千次阅读 2017-02-08 14:44:38
    问题情况:在MyEclipse中打开HTML文件乱码,使用其他文本编辑工具(notepad++)打开正常,同事运行时网页正常。 1,首先先更改项目的编码。 选中项目,鼠标右键properties->更改为所需要的编码格式即可 2,发现...
  • ie通过window.open下载excel,结果是直接打开excel乱码 在应用中通过window.open(filename,'_self')下载excel时,变成直接在浏览器打开excel,而且还是乱码,在网上找了很多办法,如设置web.xml,在web.xml增加  ...
  • 解决eclipse打开文件乱码

    千次阅读 2018-09-21 15:20:19
    解决eclipse打开文件乱码 在windows环境下,用eclipse打开部分文件里面的中文注释会出现乱码的情况,影响心情。 比如说,打开SVN历史文件时,文件中出现的中文全部乱码。 解决办法 需要设置的几处地方为: Window-&...
  • 文件编码格式改为 UTF-8 BOM格式,两者打开都显示OK
  • eclipse打开java文件,注释内容乱码

    千次阅读 2013-06-15 08:46:46
    eclipse打开java文件,注释内容乱码! 今天导入开发的工程,打开后发现java源文件的注释变成了乱码,于是在google上开始了搜索,得到了结论: 出现的原因:因为windows下默认的编码是GBK,而我的java源文件...
  • 在JAVA WEB程序的文件下载中,经常会出现文件名乱码以及文件下载框难以打开文件问题,并且经过反复测试,在firefox与IE上文件名乱码的处理方法差异较大,核心代码如下:response.reset(); //解决在弹出文件下载框不...
  • NotePad 打开文件 出现中文汉字乱码 解决办法

    万次阅读 热门讨论 2019-08-22 15:13:09
    NotePad 打开文件 出现中文汉字乱码 解决办法 现象: 出现中文汉字乱码: 解决办法: 先别着急用notepad修改编码 1. 用windows系统自带记事本打开, 2 ,选择文件另存为 3. 如果看到:编码是 UTF-8 ...
  • mysql>grant file on *.* to username@localhost;
  • Mac SecureFX 打开乱码

    万次阅读 2019-04-01 10:52:03
    配置的是UTF-8 [root@ylj ~]# echo $LANG zh_CN.UTF-8 经过google找到了解决方案 /Users/用户名/Library/Application Support/VanDyke/SecureCRT/Config/Sessions/Hadoop ## 用户名对应自己的... 参考 SecureFX中文乱码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,199
精华内容 67,679
关键字:

下载的内容打开是乱码