java - 下载文件中的 UTF-8 编码名称

标签 java string encoding utf-8

我正在尝试让用户下载带有日文名称的 excel 文件。似乎它只适用于 IE 8,而其他 IE 和 firefox 则不起作用。请建议我如何处理这个。

String fileName = dateString+"_マイページ情報.xls";
byte[] data = writer.getData();
response.setContentType("application/ms-excel");
response.setContentLength(data.length);
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode(fileName));

最佳答案

我解决了如下。

fileName = dateString+"_マイページ情報.xls"; 
fileName = URLEncoder.encode(fileName,"UTF-8"); 
try {
        response.setContentType("application/ms-excel; charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        if(browserType.equals("IE")||browserType.equals("Chrome"))
            response.setHeader("Content-Disposition","attachment; filename="+fileName);
        if(browserType.endsWith("Firefox"))
            response.setHeader("Content-Disposition","attachment; filename*=UTF-8''"+fileName);
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

关于java - 下载文件中的 UTF-8 编码名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18050718/

相关文章:

java - 如何获取 .txt 或 .sql 文件的编码类型

python - 无法在 python 2.7 和 django 1.9 中打开具有变音符号的文件名

java - 隐藏从url发送参数

python - 如何检查字符串是否包含字母或字母和撇号但不包含数字?

string - 在 Python 中比较字符串和 float

PHP - 根据给定的分隔符提取子字符串的最有效方法?

encoding - Notepad++中的编码和转换有什么区别?

Java:在 "if"语句中使 int 和 boolean 具有可比性

java - 赋值运算符链理解

java - 基于DOS的JVM可用