본문 바로가기
Dev/Ruby

루비 이스케이핑 함수 비교

by ryush00 2022. 10. 25.

루비에서 S3에서 다운받는 파일의 이름을 변경하려면 Content-Disposition 값을 설정해주어야 합니다. 영어라면 아무 문제가 없겠지만, 우리가 쓰는 한글은 여러가지 대응해야 할 문제들이 많습니다.

띄어쓰기가 +가 된다든가, 띄어쓰기의 %20이 그대로 출력된다던가, 쉼표가 들어간 경우 오류가 발생한다든가 다양한 상황이 발생합니다.

누군가의 삽질을 막기 위해, 한국어 레일즈 사이트들에서 발생하는 이슈를 막기 위해 이스케이핑 함수를 정리해 두겠습니다.

CGI.escape

  • 띄어쓰기가 +로 변환됨.

URI.encode

  • ,가 변환되지 않음

ERB::Util.url_encode

  • 문제가 발생하지 않는 제일 좋은 함수. 쉼표, 띄어쓰기에 대한 대응이 잘 되어 있다.

참고한 것들

댓글