반응형
루비에서 S3에서 다운받는 파일의 이름을 변경하려면 Content-Disposition 값을 설정해주어야 합니다. 영어라면 아무 문제가 없겠지만, 우리가 쓰는 한글은 여러가지 대응해야 할 문제들이 많습니다.
띄어쓰기가 +가 된다든가, 띄어쓰기의 %20이 그대로 출력된다던가, 쉼표가 들어간 경우 오류가 발생한다든가 다양한 상황이 발생합니다.
누군가의 삽질을 막기 위해, 한국어 레일즈 사이트들에서 발생하는 이슈를 막기 위해 이스케이핑 함수를 정리해 두겠습니다.
CGI.escape
- 띄어쓰기가 +로 변환됨.
URI.encode
- ,가 변환되지 않음
ERB::Util.url_encode
- 문제가 발생하지 않는 제일 좋은 함수. 쉼표, 띄어쓰기에 대한 대응이 잘 되어 있다.
참고한 것들
반응형