🔤 JSON 문자열 이스케이프 변환기
따옴표·백슬래시·줄바꿈이 든 텍스트를 JSON 문자열 값으로 바꾸고, 이스케이프된 문자열을 원문으로 되돌려요.
사용법
- 이스케이프 모드에서 왼쪽에 JSON 값으로 넣을 텍스트를 붙여 넣으면 오른쪽에 따옴표(")·백슬래시(\)·줄바꿈 등이 이스케이프된 문자열이 나와요. 복사해서 JSON 파일, API 요청 본문, 코드의 문자열에 붙이면 돼요.
- 복원 모드에서는 반대로
\n,\",\uac00처럼 이스케이프된 문자열을 붙여 넣으면 원래 텍스트로 되돌려 줘요. 양쪽 따옴표가 있어도, 없어도 돼요. - 옵션: 양쪽 따옴표 포함(JSON 값 그대로 쓸 때 켜세요), 한글 등을 \uXXXX 로(비ASCII를 모두 유니코드 이스케이프로 바꿔요. 인코딩이 불안정한 환경에서 쓰세요).
왜 이스케이프가 필요한가요
JSON 문자열은 큰따옴표로 감싸야 하고, 그 안에서 큰따옴표·백슬래시·제어 문자(줄바꿈, 탭 등)는 그대로 쓸 수 없어요. 예를 들어 {"message": "그가 "안녕"이라고 했다"}는 따옴표가 중간에 끊겨서 파싱 오류가 나요. 올바른 형태는 {"message": "그가 \"안녕\"이라고 했다"}이에요. 긴 텍스트, 코드 조각, 로그, Windows 경로를 JSON에 넣을 때 하나하나 손으로 고치면 실수하기 쉬워서 변환기를 써요.
이스케이프 규칙 표
| 원래 문자 | JSON 에서 쓰는 모양 | 설명 |
|---|---|---|
" 큰따옴표 | \" | 문자열을 끝내지 않도록 반드시 이스케이프 |
\ 백슬래시 | \\ | Windows 경로 C:\temp 는 C:\\temp |
| 줄바꿈 | \n | 여러 줄 텍스트를 한 줄 문자열로 |
| 탭 | \t | |
| 캐리지 리턴 (CR) | \r | Windows 줄바꿈은 \r\n |
| 백스페이스·폼피드 | \b · \f | 거의 쓰이지 않음 |
| 그 밖의 제어 문자(U+0000~U+001F) | \u0000 형식 | 반드시 이스케이프해야 해요 |
슬래시 / | 그대로 (\/ 도 허용) | 이스케이프하지 않아도 돼요 |
| 한글·이모지 | 그대로 (옵션으로 \uXXXX) | UTF-8 이면 이스케이프 없이도 유효 |
직접 변환한 예시
입력 (3줄):
He said "hi"
C:\temp\새 폴더
끝
출력:
"He said \"hi\"\nC:\\temp\\새 폴더\n끝"
한글 \uXXXX 옵션을 켜면:
"He said \"hi\"\nC:\\temp\\\uc0c8 \ud3f4\ub354\n\ub05d"
이모지는 UTF-16 서로게이트 쌍으로 두 개의 \uXXXX로 나와요. 예를 들어 😀는 \ud83d\ude00이에요. JSON 파서는 이 쌍을 다시 하나의 문자로 합쳐서 읽어요.
개발할 때 자주 만나는 상황
- API 요청 본문에 코드나 긴 글을 넣을 때: curl이나 Postman에서 JSON 본문의 문자열 값에 여러 줄 텍스트를 넣어야 할 때 변환기로 만든 문자열을 붙여 넣으세요. 요청이 400 오류(Bad JSON)를 낸다면 이스케이프가 빠진 따옴표나 줄바꿈이 흔한 원인이에요.
- JSON 안에 JSON을 넣을 때: 문자열 값에 JSON을 텍스트로 담으면(예: 웹훅 페이로드) 안쪽 JSON의 따옴표가 모두
\"로 바뀌어요. 이중 이스케이프를 피하려면 안쪽 JSON을 먼저 완성한 뒤 한 번만 이스케이프하세요. - 로그에서 이스케이프된 문자열을 읽을 때: 로그에
\n이 그대로 찍힌 긴 한 줄 메시지는 복원 모드에 붙여 넣으면 줄바꿈이 살아나서 읽기 쉬워져요. - 설정 파일·SQL·셸 명령 문자열: package.json의 scripts, 설정 파일의 템플릿 문자열처럼 따옴표가 많은 값을 JSON에 넣을 때 유용해요. 다만 셸 인용(작은따옴표 등)은 규칙이 달라서 JSON 이스케이프와 별개로 확인해야 해요.
이렇게 쓰면 편해요 (작업 순서)
- JSON에 넣을 원문(여러 줄 메시지, 코드, 경로 등)을 왼쪽 칸에 붙여 넣어요.
- 결과 칸의 copy를 눌러 복사한 뒤, JSON 파일의 해당 키 값 자리(양쪽 따옴표 포함)에 붙여 넣어요. 이미 따옴표를 써 둔 자리라면 "양쪽 따옴표 포함"을 끄고 복사하세요.
- 전체 JSON이 맞는지 JSON 검사기나 포맷터에 붙여 확인해요.
- 값을 다시 읽어야 하면 모드 버튼을 눌러 복원 모드로 바꿔요. 지금 결과가 자동으로 왼쪽 칸에 들어가 원문으로 되돌아오는지 바로 확인할 수 있어요.
입력한 내용은 바로 결과에 반영되므로 별도 변환 버튼은 없어요. 예시 버튼은 따옴표, 줄바꿈, 백슬래시 경로, 한글이 모두 든 짧은 글을 넣어 줘서 변환 결과가 어떻게 달라지는지 한눈에 볼 수 있어요. 옵션을 켜고 끄며 결과를 비교해 보세요. 아주 긴 텍스트도 브라우저 안에서 즉시 처리돼요.
자주 나오는 오류 메시지와 원인
| 오류 메시지 (예) | 흔한 원인 | 해결 |
|---|---|---|
| Unexpected token in JSON | 문자열 값 안에 이스케이프 안 된 큰따옴표 | 이스케이프 모드로 값만 변환해서 붙여 넣기 |
| Bad control character in string literal | 값 안에 실제 줄바꿈·탭이 들어 있음 | 줄바꿈을
, 탭을 로 |
| Bad escaped character | JSON에 없는 이스케이프 (A, ', 경로의 \d 등) | 백슬래시를 \ 로 두 번 쓰기 |
| Unterminated string | 문자열 끝의 따옴표 누락 또는 마지막 백슬래시가 따옴표를 이스케이프 | 끝이 \ 로 끝나는 값은 \ 로 |
메시지의 표현은 브라우저와 서버 언어마다 달라요. 어떤 오류든 값 부분만 이 변환기로 바꿔서 다시 붙이면 대부분 해결돼요. 변환한 값을 넣은 뒤에는 JSON 검사기로 전체 구조가 맞는지 한 번 더 확인하세요.
복원이 실패하는 경우
복원 모드는 표준 JSON.parse와 같은 규칙으로 읽어요. 그래서 문자열 안에 이스케이프되지 않은 큰따옴표가 있거나, 인식할 수 없는 이스케이프(\x41, \' 등 JSON에는 없는 형식)가 있거나, \u 뒤에 16진수 4자리가 오지 않으면 오류를 보여 줘요. 자바스크립트나 파이썬 코드에서 쓰는 작은따옴표 이스케이프, \x 형식은 JSON이 아니라서 먼저 JSON 규칙에 맞게 고쳐야 해요. 줄바꿈이 실제로 들어 있는 텍스트를 복원 모드에 넣으면 제어 문자가 이스케이프 안 된 상태라 오류가 나므로, 그런 텍스트는 이스케이프 모드로 먼저 변환하세요.
언어별 이스케이프 함수
직접 코드에서 처리할 때는 문자열을 직접 이어 붙이지 말고 언어의 JSON 라이브러리를 쓰는 것이 가장 안전해요. 자바스크립트는 JSON.stringify(text), 파이썬은 json.dumps(text, ensure_ascii=False)(한글을 그대로 둘 때)나 기본값(\uXXXX로 변환), 자바는 Jackson의 ObjectMapper.writeValueAsString이나 Gson을 써요. 이 도구의 결과는 자바스크립트의 JSON.stringify와 같은 규칙이고 한글 옵션은 파이썬의 ensure_ascii=True와 같은 결과예요. 라이브러리를 쓸 수 없는 일회성 작업이나 값 확인에 이 변환기를 쓰세요.
한글·이모지는 꼭 \uXXXX 로 바꿔야 하나요
JSON은 UTF-8로 저장하면 한글과 이모지를 그대로 써도 유효해요. 요즘 API와 파일은 대부분 UTF-8이라 옵션을 켜지 않아도 돼요. 다만 인코딩을 확신할 수 없는 환경(예전 시스템, 일부 이메일·로그 파이프라인), 출력이 ASCII만 허용되는 곳, 눈에 보이지 않는 문자나 특수 공백을 구분하고 싶을 때는 \uXXXX 옵션이 안전해요. U+2028·U+2029 같은 줄 구분 문자도 이 옵션에서는 모두 이스케이프돼요. 반대로 사람이 읽을 파일이라면 한글을 그대로 두는 편이 읽기 좋아요.
입력한 텍스트는 서버로 보내지 않고 브라우저에서만 변환해요. 비밀번호나 키가 든 텍스트도 이 페이지 밖으로 나가지 않아요. 그래도 공용 컴퓨터에서는 작업 후 입력칸을 비우세요.
변환 결과는 표준 JSON(RFC 8259) 문자열 규칙을 따라요. 코드 문자열 리터럴(JS 작은따옴표, 파이썬 raw 문자열 등)로 쓸 때는 해당 언어의 따옴표 규칙을 따로 확인하세요.
자주 묻는 질문
큰따옴표가 들어간 글을 JSON 에 넣으려면요?
\" 로 바꿔야 해요. 이스케이프 모드에 글을 붙여 넣으면 모두 알아서 바꿔 줘요.줄바꿈이 있는 글은 어떻게 넣나요?
\n 으로 써야 해요. 이스케이프 모드가 줄바꿈을 \n 으로 바꿔 줘요.Windows 경로의 백슬래시는요?
\\ 로 두 번 써야 해요. C:\temp 는 "C:\\temp" 가 돼요.한글이 \uXXXX 로 바뀌어도 되나요?
\uXXXX 를 원래 문자로 읽어서 의미가 같아요. 읽기 불편하니 필요할 때만 옵션을 켜세요.이스케이프를 두 번 하면 어떻게 되나요?
\\n 처럼 돼요. 한 번만 하고, 두 번 적용된 글은 복원 모드를 두 번 돌리면 돌아와요.