error records

[node.js] setHeader content-disposition 파일명 한글 깨짐 / TypeError - Invalid character in header content ["Content-Disposition"]

알로호모라 2022. 7. 4. 14:52
반응형

 

 

node.js에서 엑셀 파일 생성 및 내보내기 (다운로드) 를 진행할 때 파일명에 한글이 들어가면 아래와 같은 에러가 나온다. 

 

 

  res.setHeader(
    'Content-Disposition',
    `attachment; filename=파일명예시.xlsx`,
  );

 

 TypeError - Invalid character in header content ["Content-Disposition"]

 

 

 

 

해결법

 

 

1. 먼저 한글 String에 인코딩을 해주고 

2. filename 바로 뒤에 [   *utf-8''   ] 를 적는다. 

  res.setHeader(
    'Content-Disposition',
    `attachment; filename*utf-8''=encodeURI('파일명예시').xlsx`,
  );

 

그럼 엑셀 파일명이 내가 설정한 한글로 잘 나온다! 

 

반응형