텍스트 · 2026년 7월 2일 · 읽는 시간 4분
JSON 문자열 이스케이프, 손으로 하다가 놓치는 경우가 생김
사용자 입력 텍스트를 JSON 값에 넣어야 하는데, 따옴표와 백슬래시를 직접 이스케이프하다가 파싱 에러가 났다.
이스케이프가 필요한 상황
개발하다 보면 꽤 자주 만난다:
- 사용자 입력을 JSON 문자열로 저장 → 따옴표, 백슬래시 이스케이프 필요
- SQL 쿼리 문자열 → 작은따옴표 이스케이프
- HTML 안에 사용자 텍스트 삽입 → XSS 방지를 위한 엔티티 인코딩
- URL에 한글/특수문자 포함 → 퍼센트 인코딩
- 정규식 문자열 → 특수 문자 이스케이프
- 셸 명령 인자 → 공백/특수문자 처리
이스케이프 처리 하나 빠지면 파싱 에러, 보안 취약점, 데이터 손상으로 이어진다.
이스케이프가 헷갈리는 이유
형식마다 이스케이프 규칙이 다르다:
- JSON → \n, \t, \", \\, \/ 등
- HTML → &, <, >, ", ' 등 엔티티
- URL → %20 (공백), %2F (/), %3A (:) 등 퍼센트 인코딩
- 정규식 → ., *, +, ?, ^, $, {}, [], () 등 앞에 \
- JavaScript 문자열 → \n, \t, \\, \', \" 등
형식별로 규칙이 달라서 헷갈리고, 하나 놓치면 에러가 난다.
그래서 만들었음
텍스트 붙여넣으면 형식별로 이스케이프/언이스케이프 해준다:
- JSON 이스케이프 → JSON 문자열 값으로 사용 가능하게
- HTML 이스케이프 → HTML 엔티티로 변환 (XSS 방지)
- URL 인코딩 → 퍼센트 인코딩 처리
- JavaScript 이스케이프 → JS 문자열로 안전하게
- 정규식 이스케이프 → 정규식 특수문자 처리
반대 방향도 가능:
- 이스케이프된 문자열 → 원본 텍스트로 복원 (언이스케이프)
- URL 디코딩 → 퍼센트 인코딩 → 원본 문자로
- HTML 엔티티 → 실제 문자로
JSON 이스케이프 대상 문자 정리
JSON 문자열에서 이스케이프해야 하는 문자들:
- " → \" (큰따옴표)
- \ → \\ (백슬래시)
- 줄바꿈 → \n (newline)
- 탭 → \t (tab)
- 캐리지리턴 → \r
- 폼피드 → \f
- 백스페이스 → \b
- 제어문자 → \u00XX 형식
이 중에서 실수로 가장 많이 놓치는 건 백슬래시와 큰따옴표다.
실제로 써보니
좋은 점:
- 형식 선택하면 즉시 변환 → 버튼 따로 안 눌러도 됨
- 이스케이프/언이스케이프 양방향 지원
- 어떤 문자가 변환됐는지 하이라이트 표시
한계:
- 복잡한 중첩 이스케이프(JSON 안의 HTML 등)는 한 번에 처리 안 됨
- 언어별 특수 이스케이프 방식은 모두 지원하지 않음
사용법
- 이스케이프할 텍스트 붙여넣기
- 형식 선택 (JSON, HTML, URL 등)
- 결과 복사
- 끝
3초면 된다.
써보기
회원가입 없이 바로 쓸 수 있다.
#문자열이스케이프 #JSON이스케이프 #HTML이스케이프 #URL인코딩 #개발도구 #텍스트도구