~ / developer / json-string-escape

🔤 JSON 문자열 이스케이프 변환기

따옴표·백슬래시·줄바꿈이 든 텍스트를 JSON 문자열 값으로 바꾸고, 이스케이프된 문자열을 원문으로 되돌려요.

JSON 문자열
광고

사용법

  1. 이스케이프 모드에서 왼쪽에 JSON 값으로 넣을 텍스트를 붙여 넣으면 오른쪽에 따옴표(")·백슬래시(\)·줄바꿈 등이 이스케이프된 문자열이 나와요. 복사해서 JSON 파일, API 요청 본문, 코드의 문자열에 붙이면 돼요.
  2. 복원 모드에서는 반대로 \n, \", \uac00처럼 이스케이프된 문자열을 붙여 넣으면 원래 텍스트로 되돌려 줘요. 양쪽 따옴표가 있어도, 없어도 돼요.
  3. 옵션: 양쪽 따옴표 포함(JSON 값 그대로 쓸 때 켜세요), 한글 등을 \uXXXX 로(비ASCII를 모두 유니코드 이스케이프로 바꿔요. 인코딩이 불안정한 환경에서 쓰세요).

왜 이스케이프가 필요한가요

JSON 문자열은 큰따옴표로 감싸야 하고, 그 안에서 큰따옴표·백슬래시·제어 문자(줄바꿈, 탭 등)는 그대로 쓸 수 없어요. 예를 들어 {"message": "그가 "안녕"이라고 했다"}는 따옴표가 중간에 끊겨서 파싱 오류가 나요. 올바른 형태는 {"message": "그가 \"안녕\"이라고 했다"}이에요. 긴 텍스트, 코드 조각, 로그, Windows 경로를 JSON에 넣을 때 하나하나 손으로 고치면 실수하기 쉬워서 변환기를 써요.

이스케이프 규칙 표

원래 문자JSON 에서 쓰는 모양설명
" 큰따옴표\"문자열을 끝내지 않도록 반드시 이스케이프
\ 백슬래시\\Windows 경로 C:\temp 는 C:\\temp
줄바꿈\n여러 줄 텍스트를 한 줄 문자열로
탭\t
캐리지 리턴 (CR)\rWindows 줄바꿈은 \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 파서는 이 쌍을 다시 하나의 문자로 합쳐서 읽어요.

개발할 때 자주 만나는 상황

이렇게 쓰면 편해요 (작업 순서)

  1. JSON에 넣을 원문(여러 줄 메시지, 코드, 경로 등)을 왼쪽 칸에 붙여 넣어요.
  2. 결과 칸의 copy를 눌러 복사한 뒤, JSON 파일의 해당 키 값 자리(양쪽 따옴표 포함)에 붙여 넣어요. 이미 따옴표를 써 둔 자리라면 "양쪽 따옴표 포함"을 끄고 복사하세요.
  3. 전체 JSON이 맞는지 JSON 검사기나 포맷터에 붙여 확인해요.
  4. 값을 다시 읽어야 하면 모드 버튼을 눌러 복원 모드로 바꿔요. 지금 결과가 자동으로 왼쪽 칸에 들어가 원문으로 되돌아오는지 바로 확인할 수 있어요.

입력한 내용은 바로 결과에 반영되므로 별도 변환 버튼은 없어요. 예시 버튼은 따옴표, 줄바꿈, 백슬래시 경로, 한글이 모두 든 짧은 글을 넣어 줘서 변환 결과가 어떻게 달라지는지 한눈에 볼 수 있어요. 옵션을 켜고 끄며 결과를 비교해 보세요. 아주 긴 텍스트도 브라우저 안에서 즉시 처리돼요.

자주 나오는 오류 메시지와 원인

오류 메시지 (예)흔한 원인해결
Unexpected token in JSON문자열 값 안에 이스케이프 안 된 큰따옴표이스케이프 모드로 값만 변환해서 붙여 넣기
Bad control character in string literal값 안에 실제 줄바꿈·탭이 들어 있음줄바꿈을 , 탭을 로
Bad escaped characterJSON에 없는 이스케이프 (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 에 넣으려면요?
큰따옴표 앞에 백슬래시를 붙여 \" 로 바꿔야 해요. 이스케이프 모드에 글을 붙여 넣으면 모두 알아서 바꿔 줘요.
줄바꿈이 있는 글은 어떻게 넣나요?
JSON 문자열 안에는 실제 줄바꿈을 넣을 수 없고 \n 으로 써야 해요. 이스케이프 모드가 줄바꿈을 \n 으로 바꿔 줘요.
Windows 경로의 백슬래시는요?
백슬래시 하나는 \\ 로 두 번 써야 해요. C:\temp 는 "C:\\temp" 가 돼요.
한글이 \uXXXX 로 바뀌어도 되나요?
네, JSON 파서는 \uXXXX 를 원래 문자로 읽어서 의미가 같아요. 읽기 불편하니 필요할 때만 옵션을 켜세요.
이스케이프를 두 번 하면 어떻게 되나요?
이미 이스케이프된 문자열을 다시 이스케이프하면 백슬래시가 또 이스케이프되어 \\n 처럼 돼요. 한 번만 하고, 두 번 적용된 글은 복원 모드를 두 번 돌리면 돌아와요.

관련 도구

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →