유니코드 이스케이프 / 복원

텍스트를 붙여 넣으면 이스케이프가 즉시 나오고, \u4F60을 붙여 넣으면 문자로 돌아옵니다. 버튼도, 업로드도 없습니다.

사용 방법

  1. 이스케이프 또는 복원을 고르세요. 입력란은 그대로 유지되므로 같은 텍스트를 다시 입력하지 않고 양쪽에서 볼 수 있습니다.
  2. 이스케이프: 텍스트를 입력하거나 붙여 넣으면 이스케이프가 즉시 나타납니다. 대상 언어가 쓰는 문법을 고르세요. \uXXXX(Java, JSON, .properties — BMP 밖 문자는 UTF-16 서로게이트 쌍이 됨), \u{X}(ES6 JavaScript, Rust, Swift, Ruby, PHP), \UXXXXXXXX(Python, C, Go, C#), U+XXXX(유니코드 표준 표기)입니다.
  3. 범위를 고르세요. “비 ASCII만”(기본값)은 U+007F보다 큰 문자만 이스케이프하고 ASCII, 공백, 줄바꿈은 그대로 둡니다. “모든 문자”는 모든 코드 포인트를 이스케이프해 출력을 순수 ASCII로 만듭니다.
  4. 복원: 이스케이프가 포함된 텍스트를 붙여 넣으면 문자로 돌아옵니다. 결과 위 줄에 디코딩한 문자 수와, 읽지 못한 조각이 있으면 그 내용과 위치가 표시됩니다.

예시

입력

Café "naïve" 😀

이스케이프 결과

Caf\u00E9 "na\u00EFve" \uD83D\uDE00

“é”에는 ASCII 형태가 없어 \u00E9가 됩니다. “😀”은 U+1F600으로 BMP 밖이므로 \uXXXX 문법에서는 서로게이트 쌍 \uD83D\uDE00으로 씁니다. \u{X}로 바꾸면 같은 텍스트가 Caf\u{E9} "na\u{EF}ve" \u{1F600}이 되고, \UXXXXXXXX는 …\U0001F600, U+XXXX는 CafU+00E9 "naU+00EF ve" U+1F600이 됩니다. é 뒤의 공백 두 개는 구분자와 원래 텍스트의 공백입니다. 이 결과는 모두 복원에 그대로 붙여 넣으면 원문이 됩니다.

규칙, 제한 및 알려진 문제

  • 문법은 네 가지만 인식합니다. \uXXXX(정확히 16진수 4자리), \u{X}(1–6자리), \UXXXXXXXX(정확히 8자리), U+XXXX(1–6자리, 대문자 U+)입니다. %uXXXX, \x{X}, CSS \X, \N{NAME}은 지원하지 않으며 你 같은 HTML 참조는 HTML 엔티티 도구에서 다룹니다.
  • \uXXXX는 4자리로 고정됩니다. \u12와 \u12345는 \uXXXX로 읽지 않으며 \u12345는 U+1234 뒤에 문자 “5”로 디코딩됩니다. 1–6자리가 필요하면 \u{…}를 쓰세요.
  • \uXXXX에는 문자 경계가 없습니다. \u4F60abc는 你abc로 디코딩되고 U+4F601은 U+4F60 뒤에 “1”이 아니라 코드 포인트 U+4F601(5자리, 유효)입니다.
  • U+XXXX에서 코드 포인트 뒤의 공백 하나는 내용이 아니라 구분자입니다. U+4F60 hello는 你hello로 디코딩됩니다. 이 도구는 모든 U+ 토큰 뒤(맨 끝 제외)에 공백을 쓰므로 자체 출력은 왕복이 됩니다. 공백 없이 손으로 쓴 토큰은 뒤의 16진수와 붙어 인식하지 못함으로 집계됩니다.
  • 서로게이트 쌍은 Java/JSON 표현인 \uXXXX 문법에만 나타납니다. \u{1F600}, \U0001F600, U+1F600은 코드 포인트를 직접 씁니다. 낮은 서로게이트가 뒤따르지 않는 높은 서로게이트는 작성된 그대로 두고 인식하지 못함으로 세며 “�”로 바꾸지 않습니다.
  • U+10FFFF를 넘는 코드 포인트와 서로게이트 범위 자체도 같은 방식으로 거부합니다. 그대로 두고 집계하며 조용히 바꾸지 않습니다.
  • “비 ASCII만” 범위는 역슬래시 자체를 이스케이프하지 않습니다. 텍스트에 이미 \u4f60이 있으면 복원이 이를 이스케이프로 읽습니다. 이 모호성은 범위에 내재하므로 역슬래시가 중요하면 “모든 문자”를 고르세요.
  • 디코딩은 한 번만 합니다. \u005Cu4F60은 你가 아니라 문자 그대로 \u4F60이 됩니다. 두 계층이 정말 필요하면 다시 붙여 넣으세요.
  • 유효한 제어 문자는 자기 자신으로 디코딩됩니다. \u0000은 U+0000이 되어(보이지 않지만 오류는 아님) 출력에 눈에 보이지 않는 문자가 들어갈 수 있습니다.
  • \n, \t 같은 문자열 이스케이프는 일반 텍스트로 두고 집계하지 않으며 완전한 JSON 문자열 리터럴은 별개 문제입니다. URL, HTML, Base64 인코딩도 별도 도구입니다.
  • 최대 10만 자이며 이를 넘으면 잘린 결과 대신 오류가 표시됩니다. 2만 자를 넘으면 입력을 멈춘 뒤 약 0.6초 후 결과가 갱신됩니다.
  • 파일 업로드, 기록, 입력을 담은 공유 링크가 없습니다. 모든 처리는 브라우저에서 이루어지며 텍스트는 페이지를 떠나지 않습니다.

텍스트를 이스케이프하거나 복원한 뒤 보통 필요한 도구입니다.