Devin.KR

한글 깨짐 복구

안녕, 占쏙옙 처럼 깨진 문자열을 여러 인코딩 조합으로 되돌려 보고, 한글다움 점수 순으로 후보를 보여줍니다.

브라우저에서만 처리
이 브라우저는 TextDecoder('euc-kr') 를 지원하지 않아 EUC-KR/CP949 관련 복구 경로를 쓸 수 없습니다. Latin-1·CP1252 경로만 시도합니다. 최신 Chrome/Edge/Firefox/Safari 에서는 모두 동작합니다.
깨짐 예시 넣기:
입력에 �(U+FFFD)가 0개 있습니다 — 그 자리는 복구할 수 없습니다.

�는 디코더가 해석하지 못한 바이트를 버리고 넣은 대체 문자라, 원래 바이트 정보가 이미 사라진 상태입니다. 占쏙옙도 같은 손실(U+FFFD)이 EUC-KR로 다시 저장된 흔적입니다. 아래 후보에서 �로 남는 부분은 원본 파일·DB 덤프를 올바른 인코딩으로 다시 읽는 방법밖에 없습니다.

복구 후보 (한글다움 점수 순)

아직 입력이 없습니다.

깨짐 모양으로 원인 알아보기

이렇게 보이면무슨 일이 있었나복구
안녕하세요UTF-8 데이터를 Latin-1/CP1252 로 읽음가능
¾È³çÇϼ¼¿äEUC-KR 데이터를 Latin-1/CP1252 로 읽음가능
안녕위 실수가 두 번 겹침(이중 인코딩)대부분 가능
占쏙옙, �디코딩 실패로 바이트가 이미 버려짐불가
뷁, 궭 (희귀 음절)EUC-KR을 UTF-8로 읽는 등 우연히 유효했던 조합부분적

자주 묻는 것

왜 복구가 안 되는 경우가 있나요?

깨짐에는 두 종류가 있습니다. 바이트는 그대로인데 잘못 보여준 경우(Latin-1로 읽은 UTF-8 등)는 해석만 되돌리면 되므로 완전 복구가 됩니다. 반면 디코딩 단계에서 해석 불가 바이트가 �(U+FFFD)로 대체된 경우는 정보 자체가 사라진 뒤라 수학적으로 복구가 불가능합니다. UTF-8을 EUC-KR로 읽은 경우가 대표적으로, 일부 바이트 조합만 우연히 살아남아 부분 복구만 됩니다.

CP949와 EUC-KR은 다른가요?

CP949(UHC)는 EUC-KR의 확장으로, EUC-KR에 없는 8,822자(옛 완성형 밖의 음절)를 더 담습니다. 브라우저의 TextDecoder('euc-kr')는 WHATWG 표준에 따라 실제로는 CP949(windows-949)로 동작하므로, 이 도구의 EUC-KR 경로는 CP949 데이터도 처리합니다.

입력한 값이 서버로 전송되나요?

전송되지 않습니다. 변환은 전부 브라우저의 자바스크립트가 하며 네트워크 요청이 발생하지 않습니다. 개발자 도구의 네트워크 탭으로 확인해 보셔도 됩니다.

관련 도구: 한글 초성 정규식 생성기 · URL 인코더/디코더 · 해시 생성기

한글 깨짐 복구 사용 안내

안녕, 占쏙옙, 뷁 같은 깨진 한글을 여러 인코딩 조합(UTF-8, EUC-KR/CP949, Latin-1, CP1252)으로 되돌려 보고 한글다움 점수 순으로 후보를 보여줍니다. 브라우저에서만 처리되며 입력값을 서버로 보내지 않습니다.

깨진 텍스트를 붙여 넣고 복구 후보를 확인하세요. 원본 바이트가 물음표 등으로 이미 손실된 경우에는 완전한 복구가 불가능할 수 있습니다.

어떻게 구현했나

깨진 글자를 되돌린다는 것은, 지금 화면에 있는 문자를 어떤 인코딩의 바이트로 되돌린 다음 다른 인코딩으로 다시 읽는다는 뜻입니다. 이 도구는 UTF-8·EUC-KR/CP949·Latin-1·CP1252 조합을 차례로 시도하고 나온 후보를 모두 보여줍니다.

읽는 쪽은 브라우저의 TextDecoder를 쓰지만 쓰는 쪽은 직접 만들어야 했습니다. 표준 TextEncoder는 UTF-8만 내보내기 때문에, 디코더로 만든 표를 뒤집어 문자에서 바이트로 가는 역테이블을 구성했습니다.

Latin-1은 특히 조심해야 합니다. TextDecoder에 iso-8859-1을 넘기면 규격상 CP1252로 매핑돼 0x80~0x9F 구간이 달라집니다. 하필 한글 깨짐에서 자주 등장하는 구간이라 Latin-1은 별도로 구현했습니다.

후보가 여러 개 나오므로 '한글다움' 점수를 매겨 정렬합니다. 완성형 음절이 많고 대체 문자가 적을수록 위로 올립니다. 사람이 눈으로 고르는 수고를 줄이는 어림짐작이지 정답 판정이 아닙니다.

U+FFFD(�)가 섞인 문자열은 되돌릴 수 없습니다. 그 자리의 원래 바이트는 디코더가 이미 버린 뒤라 어떤 도구로도 되살릴 수 없습니다.

자주 묻는 질문

입력한 데이터는 어디에서 처리하나요?

이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.

결과가 예상과 다르면 어떻게 하나요?

입력 형식, 문자 인코딩과 선택한 옵션을 확인하세요. 각 도구가 안내하는 지원 범위와 제한을 확인하고, 원본 데이터를 보관한 상태에서 결과를 검토하세요.

함께 쓰면 좋은 도구

전체 도구 바로가기

문서 · 데이터 변환

개발 실무

한국 개발 특화

API · 네트워크

이미지 · 색상