자막 인코딩 변환기
자막에 � 표시나 알 수 없는 글자가 보인다면, 플레이어가 예상하는 것과 다른 옛 인코딩으로 저장된 파일인 경우가 대부분입니다. 고른 인코딩으로 파일을 다시 읽어 UTF-8로 저장합니다. 파일은 브라우저 밖으로 나가지 않습니다.
자막 파일 인코딩 복구
자막 파일(.srt, .vtt, .ass, .smi…)을 업로드하면 인코딩을 복구합니다.
사용 방법
- 자막 파일을 올립니다. .srt, .vtt, .ass, .ssa, .sbv, .sub, .smi, .txt를 받습니다.
- 파일이 올바른 UTF-8이면 UTF-8을, 아니면 � 표시가 가장 적게 나오는 옛 인코딩을 먼저 골라 둡니다. 이 추측은 틀릴 수 있습니다.
- 미리보기가 제대로 읽힐 때까지 원본 인코딩을 바꿔 봅니다.
- UTF-8로 내려받기를 누릅니다. 확장자는 그대로 두고 이름 뒤에 -utf8을 붙이므로 movie.smi는 movie-utf8.smi가 됩니다.
파일에 하는 일
- 읽을 수 있는 인코딩은 UTF-8, EUC-KR/CP949, Shift-JIS, GB2312/GBK/GB18030, Big5, Windows-1252/Latin-1, Windows-1251입니다.
- 저장한 파일에는 BOM(바이트 순서 표시)이 없습니다. 바뀌는 것은 인코딩뿐이고 자막 형식, 시간, 내용은 그대로입니다.
언어별 옛 인코딩
UTF-8이 널리 쓰이기 전에는 언어마다 다른 인코딩으로 자막을 저장했습니다. 마지막 칸은 그런 파일의 예시 단어를 UTF-8로 읽었을 때의 모습입니다.
| 언어 | 옛 인코딩 | UTF-8로 읽으면 |
|---|---|---|
| 한국어 | EUC-KR / CP949 | 안녕하세요 → �ȳ��ϼ��� |
| 일본어 | Shift-JIS | こんにちは → ����ɂ��� |
| 중국어 간체 | GB2312 / GBK / GB18030 | 你好世界 → ������� |
| 중국어 번체 | Big5 | 繁體中文 → �c�餤�� |
| 서유럽어 | Windows-1252 / Latin-1 | café → caf� |
| 키릴 문자 | Windows-1251 | Привет → ������ |
글자가 깨지는 이유
자막 파일에는 바이트가 저장되어 있고, 각 바이트가 어떤 글자인지는 인코딩이 정합니다. EUC-KR로 저장한 한국어 파일을 UTF-8로 열면 바이트 배열이 UTF-8 규칙에 맞지 않아 �로 표시됩니다.
반대 경우도 있습니다. UTF-8 파일을 Windows-1252로 읽는 프로그램에서는 café가 café로 보입니다. 이때 파일은 멀쩡하고 이 도구에서도 UTF-8로 표시되므로, 프로그램 쪽에서 UTF-8로 읽도록 설정해야 합니다.
자주 묻는 질문
- 미리보기가 읽히긴 하는데 한자로 나옵니다.
- 동아시아 인코딩은 쓰는 바이트 범위가 겹쳐서, EUC-KR로 저장한 한국어 파일을 GB18030이나 Big5로 읽으면 뜻 없는 한자가 됩니다. 한국어 파일이라면 EUC-KR / CP949를 고릅니다.
- 변환했는데도 플레이어에서 글자가 깨집니다.
- 오래된 플레이어나 TV 중에는 파일 맨 앞에 BOM이 있어야 UTF-8로 알아보는 기기가 있는데, 이 도구는 BOM 없이 저장합니다. 플레이어의 자막 설정에서 인코딩을 UTF-8로 바꿔 봅니다.
- SMI 파일도 SRT로 바뀌나요?
- 아니요. 형식과 확장자는 그대로 두고 인코딩만 바꾸므로 .smi 파일은 UTF-8 .smi 파일로 나옵니다.
- 텍스트를 붙여 넣어서 고칠 수는 없나요?
- 없습니다. 붙여 넣는 순간 브라우저나 편집기가 이미 글자로 바꾼 상태라 원래 바이트가 남아 있지 않습니다. 파일을 그대로 올려야 합니다.