루비 이스케이핑 함수 비교

2022. 10. 25. 22:08·Dev/Ruby
반응형

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

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

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

CGI.escape

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

URI.encode

  • ,가 변환되지 않음

ERB::Util.url_encode

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

참고한 것들

  • https://engineering.resolvergroup.com/2022/02/aws-s3-utf-8-content-disposition/
  • https://stackoverflow.com/questions/2824126/whats-the-difference-between-uri-escape-and-cgi-escape/13059657#13059657
  • 직접 돌린 rspec 테스트
반응형
저작자표시 (새창열림)
'Dev/Ruby' 카테고리의 다른 글
  • Rails 5.2의 쓰레기 기능: Active Storage
  • 은는이가(ununiga) gem, 레일즈에서의 i18n 조사 처리
ryush00
ryush00
IT 관련 글이 올라와요
    반응형
  • ryush00
    말똥이의 블로그
    ryush00
  • 전체
    오늘
    어제
    • 모든 글 (223)
      • 블로그 (13)
        • 공지 사항 (5)
        • 블로그 운영 팁 (6)
        • 기타 (2)
      • IT (69)
        • 정보글 (51)
        • 리뷰 (8)
        • 심층 분석 (5)
        • NAS (5)
      • Game (44)
        • Minecraft (40)
        • 게임 정보글 (4)
      • Dev (53)
        • PHP (1)
        • HTML & CSS (0)
        • Ruby (3)
        • DB (2)
        • 클라우드 (2)
        • 행사 (0)
        • 삽질 방지 (20)
      • 마인리스트 (10)
      • 이모저모 (21)
        • 나의 생각 (7)
        • 나의 일상 (4)
        • 유용한 것들 (3)
        • 노하우 (6)
      • 휴지통 (0)
      • 안전 (0)
        • 베리어프리 (0)
        • 교통 안전 (0)
  • 블로그 메뉴

    • 전체글
    • 공지사항
  • 링크

    • 마인리스트
  • 공지사항

    • 저작권 안내
  • 인기 글

  • 태그

    블로그
    구글 지도 반출
    티스토리 초대장
    CloudFlare
    Ruby on Rails
    개발
    apk
    티스토리
    마인리스트
    애플
    해킹
    ruby
    spigot
    안드로이드
    java
    클라우드플레어
    토렌트
    시놀로지
    맥
    php
    bukkit
    문제해결
    삽질
    howto
    마인크래프트
    구글 지도
    아이폰
    NAS
    오류
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ryush00
루비 이스케이핑 함수 비교
상단으로

티스토리툴바