`
shania0127
  • 浏览: 25266 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

下载文件名称的中文解决办法

    博客分类:
  • Java
阅读更多
Response.setHeader("Content-Disposition", "attachment; filename=" + fileName+".xls");
如果file.Name为中文则乱码。解决办法是
方法1:
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
下载的程序里有了上面一句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文。但是文字只要超过17个字,就不能下载了。
一. 通过原来的方式,也就是先用URLEncoder编码,当中文文字超过17个时,IE6 无法下载文件。这是IE的bug,参见微软的知识库文章 KB816868 。原因可能是IE在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是153个字节,所以会报错。而且不跟后缀也不对.
方法2:
response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) );
在确保附件文件名都是简 体中文字的情况下,那么这个办法确实是最有效的,不用让客户逐个的升级IE。如果台湾同胞用,把gb2312改成big5就行。但现在的系统通常都加入了 国际化的支持,普遍使用UTF-8。如果文件名中又有简体中文字,又有繁体中文,还有日文。那么乱码便产生了。另外,在上Firefox (v1.0-en)下载也是乱码
分享到:
评论

相关推荐

    文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf

    文件下载response.setHeader()下载中文文件名乱码问题解决办法 本文主要讨论了文件下载时response.setHeader()下载中文文件名乱码问题的解决办法。该问题是由于 HTTP 消息头中的 Content-Disposition 头字段不正确...

    chm格式文件打不开解决办法

    - 修改CHM文件名称,确保文件名也不包含中文字符。 #### 三、更新或重新安装HH.EXE 1. **下载hhupd.exe**:访问微软官网下载名为`hhupd.exe`的文件。该文件大小约为461KB。下载完成后运行该程序即可自动更新HH....

    MyEclipse中properties文件支持中文的解决办法

    标题“MyEclipse中properties文件支持中文的解决办法”所指向的核心问题是在MyEclipse集成开发环境中,使用.properties文件进行国际化时遇到中文显示异常的情况。解决这个问题通常需要改变文件的编码方式或者利用...

    Eclipse和MyEclipse中properties文件支持中文的解决办法

    ### Eclipse和MyEclipse中properties文件支持中文的解决办法 #### 概述 在使用Eclipse或MyEclipse开发环境中,经常会遇到properties文件中的中文字符显示异常的问题。这主要是因为properties文件默认采用ASCII编码...

    jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

    jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

    安装Wincc Flexible 2008 SP4提示“未找到SSF文件”的解决办法.docx

    《解决Wincc Flexible 2008 SP4安装时“未找到SSF文件”问题的全面指南》 在工业自动化领域,Siemens的Wincc Flexible是一款广泛使用的组态软件,尤其适用于人机界面(HMI)的设计。然而,在安装Wincc Flexible ...

    httpclient4上传文件中文乱码问题解决办法代码示例

    服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。

    tekla输入汉字显示问号解决办法

    在附件的“汉字显示问号解决办法.txt”文件中,详细地记录了每一步操作的具体方法和注意事项,包括可能遇到的问题及解决方案。按照文本中的指引操作,应该可以顺利解决Tekla输入汉字显示问号的问题。如果你在执行...

    Drozer中文乱码解决办法.docx

    Drozer 中文乱码解决办法可以通过修改配置文件来解决。这需要添加三行代码来设置 Python 的默认编码,并修改 `package.py` 文件的相关代码。通过这种方式,我们可以解决 Drozer 中文乱码的问题,从而更好地使用 ...

    jsch文件名中文乱码解决办法

    感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* 修改源码后重新导出的jar包 *我写的一段小程序,实现的主要功能是同步sftp上的文件夹(sftp->本地) ...

    ArcGIS中文字段截断问题解决办法(一键写入注册表).zip

    在使用ArcGIS10.2.1或10.2.2及10.3以上版本时,可能会出现中文字段名称被截断,不能超过3个汉字的问题。此工具可以自动识别arcgis版本并一键写入注册表,实现arcgis可以支持导出5个汉字的字段名的shp文件。

    myeclipse代码中文乱码解决办法

    MyEclipse提供了一个名为“External Tools” 的功能,允许我们使用外部工具来解决中文乱码问题。例如,我们可以使用“Native2Ascii”工具来将GBK编码的文件转换为UTF-8编码。 四、总结 解决MyEclipse中文乱码问题...

    关于Flex4不生成mxml对应的html文件的解决方法

    在主应用程序文件设置中,你可以根据个人喜好选择主入口文件,例如可以使用`index.mxml`,但这里保持默认的项目名称即可。 然而,即使以上步骤都按照标准进行,仍然可能出现不生成HTML文件的问题。这通常与编译错误...

    EL中文显示乱码的解决办法

    在使用EL(Expression Language)表达式处理中文字符时,可能会遇到中文显示乱码的问题,这通常是由于字符编码不一致导致的。以下是一些详细的解决步骤和相关知识点: 1. **理解字符编码**: - 字符编码是用来表示...

    Sybase安装步骤及中文乱码解决办法

    Sybase安装步骤及中文乱码解决办法 在今天的信息时代,数据库管理系统(DBMS)是企业信息化建设的核心组件之一,而Sybase是其中的一种。 Sybase是一个高性能、高可靠性、高可扩展性的关系数据库管理系统,广泛应用...

    C++操作MariaDB和MySql中文乱码或无法处理中文的解决办法

    C++操作MariaDB和MySql中文乱码或无法处理中文的解决办法 在使用C++操作MariaDB和MySQL数据库时,中文乱码或无法处理中文是一个常见的问题。本文将介绍如何解决这个问题,确保C++程序正确地处理中文。 解决方法 ...

    windows xp 乱码解决文件

    在尝试解决乱码问题时,升级到更现代的操作系统,或者确保软件是Unicode兼容的,可能会是更长远的解决办法。然而,对于那些无法更新系统或软件的用户,调整字体配置仍然是一个实用的临时解决方案。

    revit打开时没有四个样板文件解决办法.pdf

    2. **复制样板文件**:找到合适的样板文件后,将其解压,找到名为“Chinese”的文件夹(这代表中文版本)。然后将这个文件夹复制到Revit的模板文件路径下,通常是`ProgramData\Autodesk\RVT 2016\Family Templates`...

    displaytag中文排序问题解决办法

    编译后的文件和修改后的jar包(displaytag-1.0.jar和displaytag-1.1.jar)是修改后的源码编译并打包的结果,可以直接替换到你的项目中,以解决中文排序问题。在实际操作中,你需要将这些新的jar包部署到你的应用...

Global site tag (gtag.js) - Google Analytics