美文网首页
中文编码前后端格式问题

中文编码前后端格式问题

作者: pruple_Boy | 来源:发表于2021-03-07 20:02 被阅读0次

    java 中文乱码为 ?????? 格式,使用 URLEncoder.encode 编码,英文编码不受影响

    response.setContentType("application/vnd.ms-excel;charset=UTF-8"); //通知客服文件的MIME类型
    //设置要下载的文件的名称: 若是中文需要转码, java乱码为 ?????
    response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(sheetName, "utf-8"));
    // 服务端要在header设置Access-Control-Expose-Headers, 前端才能正常获取到
    response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
    

    web 中文乱码为 百分号 格式, 使用 decodeURIComponent 解码,英文编码不受影响

    // 处理文件名称: <详见 https://www.jianshu.com/p/9352c68a0635>
    let fileName;
    try {
      const disposition = response.headers["content-disposition"];
      fileName = decodeURIComponent(disposition.split("fileName=")[1]); // 中文需要转码(前端乱码为百分号形式)
    } catch (error) {
      fileName = EXPORT_FILE_NAME;
    }
    if (!fileName.includes(".xls")) fileName += ".xls";
    return { data: formatResponse(), fileName }; // 格式化输出
    

    相关文章

      网友评论

          本文标题:中文编码前后端格式问题

          本文链接:https://www.haomeiwen.com/subject/bghdqltx.html