답변:
자막 편집 / 번역 (텍스트 기반 자막)의 경우 Gaupol을 강력하게 제안 합니다 .
sudo apt-get install gaupol
또한 자막 편집기 및 그놈 자막을gaupol
사용해 볼 수도 있습니다 .
그러나 스크린 샷에서 .srt
파일이 유니 코드로 인코딩 되지 않은 것이 분명합니다 .
그것이 나오는 것에 따라, iconv
변경하지 UTF-8 파일의 인코딩을하지만, 변환 된 파일은 아직도 당신의 gedit에서 때 열기를 참조 같은 문자를해야합니다.
내가 찾은 해결책은 다음과 같습니다.
열린 창 하단에는 문자 인코딩 이라는 선택 메뉴가 있습니다. 기타 ... (마지막 옵션)를 클릭하십시오 .
파일에 적합한 인코딩 (예 : 그리스어 ISO-8859-7 )을 선택하고 수락 버튼을 클릭 하십시오 .
이제 .srt
파일을 열고 모든 문자가 올바르게 렌더링되었는지 확인하십시오. 그렇지 않으면 다른 인코딩으로 위 절차를 반복하십시오. 명령 file -bi yourfile.srt
을 실행 하여 파일의 올바른 인코딩을 결정할 수 있습니다 (결과를 읽은 것은 아니지만 반드시 정확한 것은 아닙니다).
코드 페이지를 추가하는 동일한 절차가 Gedit에서 작동합니다 . 그러나이 질문은 자막 파일에 관한 것이므로 Gaupol에 대한 지침을 남겨 둡니다.
행운을 빕니다.
iconv
문자 인코딩은 변경되지만 프로그램은 UTF-8로 열 때 표시되는 문자를 대체하지 않습니다. 업데이트 된 답변을 확인하십시오. 건배.
iconv -f ISO-8859-7 -t UTF-8 Input_file.srt > Output_file.srt
Kate 편집기에서 열면 올바른 텍스트를 볼 수 있습니다. Gedit에서 열어야 할 경우, 즉 위의 터미널 명령을 실행하여 목록을 영구적으로 변경하십시오.
추천 enca
합니다. gaupol과 달리 자막 파일뿐만 아니라 모든 텍스트 파일을 처리 할 수 있습니다.
enca를 설치하십시오.
sudo apt-get install enca
파일 인코딩을 확인하려면 enca가 추측 할 수 있는지 확인하십시오.
enca <file>
또는 실패하고 텍스트 파일의 언어를 알고 있다면 예를 들어 실행하는 것보다
enca -L ru <file>
그것이 당신에게 무엇을 주는지보십시오. 에서 지원되는 언어 목록을 가져옵니다 man enca
.
UTF-8로 변환하는 것이 좋습니다. 실행하여 수행 할 수 있습니다
enconv -x utf8 <file>
또는 다시 enca
언어를 추측 할 수없는 경우
enconv -L ru -x utf8 <file>
그 트릭을해야합니다.
문제는 Gedit (및 다른 많은 Linux 응용 프로그램)가 텍스트 인코딩을 올바르게 인식하지 못한다는 것입니다. 반면 VLC는 "자막 기본 설정"탭을 통해 올바르게 인식하도록 설정되어있을 것이므로 문제가없는 것입니다. 해결책은 간단합니다.
파일을 두 번 클릭하여 열지 않고 Gedit의 "열기"대화 상자를 통해 엽니 다 . 왼쪽 하단 a drop-down for Encoding
에서 기본적으로 "자동 감지 됨"이 선택되어 있습니다. "Windows-1253"또는 "ISO-8859-7"로 설정하면 파일이 올바르게 열리고 나중에 문제가 발생하지 않도록 UTF-8로 저장할 수 있습니다.
다른 형식으로 변환 할 수 있고 수많은 기능이 포함 된 또 다른 자막 편집기는 Aegisub 입니다. VLC Media Player와 MPlayer에서 기본 형식 (.ass)을 지원하며이를 변환하면 인코딩 문제가 해결됩니다.
일반적인 정보를 위해 subtitle-index.org 가 있으며 많은 자막을 집중시키고 여러 기준 (기간, 맞춤법 검사, 책임, 인코딩)에 따라 순위를 매기고 UTF-8로 직접 다운로드하는 것이 가장 좋습니다.
꽤 잘 작동하면 매우 일반적이며 성가신 인코딩 문제를 피할 수 있습니다.
자막을 포함한 모든 텍스트 파일을 UTF-8 인코딩이있는 텍스트 파일로 변환하는 Python3 함수입니다.
def correctSubtitleEncoding(filename, newFilename, encoding_from='ISO-8859-7', encoding_to='UTF-8'):
with open(filename, 'r', encoding=encoding_from) as fr:
with open(newFilename, 'w', encoding=encoding_to) as fw:
for line in fr:
fw.write(line[:-1]+'\r\n')