자막 파일의 인코딩을 어떻게 변경합니까?


14

영화의 그리스어 자막을 다운로드했는데 이것이 Gedit로 열 때 볼 수있는 내용입니다.

여기에 이미지 설명을 입력하십시오

자막은 VLC에서 완벽하게 작동합니다. 그러나이 자막을 그리스어 단어로 편집하려면 어떻게해야합니까? 문자 인코딩에 대해 즉시 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

재 시도를하면 VLC가 자막을 인식하지 못합니다 ...

답변:


16

자막 편집 / 번역 (텍스트 기반 자막)의 경우 Gaupol을 강력하게 제안 합니다 .

sudo apt-get install gaupol

또한 자막 편집기그놈 자막을gaupol 사용해 볼 수도 있습니다 .

그러나 스크린 샷에서 .srt파일이 유니 코드로 인코딩 되지 않은 것이 분명합니다 .

그것이 나오는 것에 따라, iconv 변경하지 UTF-8 파일의 인코딩을하지만, 변환 된 파일은 아직도 당신의 gedit에서 때 열기를 참조 같은 문자를해야합니다.

내가 찾은 해결책은 다음과 같습니다.

  1. Gaupol을 열고 파일열기 메뉴로 이동 하거나 열기 버튼을 클릭하십시오 .
  2. 열린 창 하단에는 문자 인코딩 이라는 선택 메뉴가 있습니다. 기타 ... (마지막 옵션)를 클릭하십시오 .

    Gaupol의 열린 창에서 문자 인코딩 옵션

  3. 파일에 적합한 인코딩 (예 : 그리스어 ISO-8859-7 )을 선택하고 수락 버튼을 클릭 하십시오 .

    문자 인코딩 대화 상자 표시

  4. 이제 .srt파일을 열고 모든 문자가 올바르게 렌더링되었는지 확인하십시오. 그렇지 않으면 다른 인코딩으로 위 절차를 반복하십시오. 명령 file -bi yourfile.srt을 실행 하여 파일의 올바른 인코딩을 결정할 수 있습니다 (결과를 읽은 것은 아니지만 반드시 정확한 것은 아닙니다).

  5. 자막 파일을 올바른 문자 인코딩으로 연 상태에서 이제 파일 → 다른 이름으로 저장 ... 메뉴로 이동 하여 문자 인코딩 옵션 (창 하단에 있음)을 UTF-8로 변경하고 파일을 저장하십시오 ( 안전을위한 새로운 이름).

코드 페이지를 추가하는 동일한 절차가 Gedit에서 작동합니다 . 그러나이 질문은 자막 파일에 관한 것이므로 Gaupol에 대한 지침을 남겨 둡니다.

행운을 빕니다.


이미 gaupol을 가지고 있으며 이전 스크린 샷과 같은 단어를 읽을 수없는 문자로 표시합니다. 이전에 말했듯이 UTF-8을 새로운 인코딩으로 설정하면 VLC는 자막을 인식하지 못합니다.
Leon Vitanos

utf-8로 편집하고 면도하기 전에 인코딩을 변경해야합니다.
carnendil

좀 더 구체적으로 말씀해 주시겠습니까? 다른 이름으로 저장을 통해 인코딩 변경을 의미합니까? U는 "iconv"로 터미널을 통해 변경 인코딩을 의미합니까? VLC는 이후 자막을 인식하지 못합니다
Leon Vitanos

죄송합니다. 확인하려면 그리스어 자막을 가져와야합니다. 실제로 iconv문자 인코딩은 변경되지만 프로그램은 UTF-8로 열 때 표시되는 문자를 대체하지 않습니다. 업데이트 된 답변을 확인하십시오. 건배.
carnendil

4
iconv -f ISO-8859-7 -t UTF-8  Input_file.srt   > Output_file.srt  

Kate 편집기에서 열면 올바른 텍스트를 볼 수 있습니다. Gedit에서 열어야 할 경우, 즉 위의 터미널 명령을 실행하여 목록을 영구적으로 변경하십시오.


iconv, 내가 실험 할 수 있었던 것은 파일의 인코딩을 변경하지만 내용을 대체하지는 않습니다. 즉, 소스 인코딩과 대상 인코딩 사이에 일치하는 문자 만 올바르게 렌더링됩니다. 다른 모든 것은 대상 인코딩이이를 이해하는 방법 내 답변 과 의견을 참조하십시오 .
carnendil

thnks @ carnendil 내가 말한 것은 그리스어이기 때문에 코드화를 변경한다는 것입니다. (모국어가 아닌 영어) 분명히 인코딩을 의미하고 출력 파일에서만 입력이 여전히 디렉토리에 있지만, 당신은 충분히 친절 할 수 있습니다 bash 스크립트로 구현 하시겠습니까? "for do. iconv ... done"루프로 가야합니까?
billybadass

그런 종류의 대답은 여전히 ​​비디오 플레이어 환경 설정 #에서 인코딩을 utf-8로 변경해야합니다 * .srt의 파일에 대한 / bin / bash do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file"&& mv -f "$ file.new" "$ file" 완료
billybadass 1

3

추천 enca합니다. gaupol과 달리 자막 파일뿐만 아니라 모든 텍스트 파일을 처리 할 수 ​​있습니다.

  1. enca를 설치하십시오.

    sudo apt-get install enca
    
  2. 파일 인코딩을 확인하려면 enca가 추측 할 수 있는지 확인하십시오.

    enca <file>
    

    또는 실패하고 텍스트 파일의 언어를 알고 있다면 예를 들어 실행하는 것보다

    enca -L ru <file>
    

    그것이 당신에게 무엇을 주는지보십시오. 에서 지원되는 언어 목록을 가져옵니다 man enca.

  3. UTF-8로 변환하는 것이 좋습니다. 실행하여 수행 할 수 있습니다

    enconv -x utf8 <file>
    

    또는 다시 enca언어를 추측 할 수없는 경우

    enconv -L ru -x utf8 <file>
    

    그 트릭을해야합니다.


1

문제는 Gedit (및 다른 많은 Linux 응용 프로그램)가 텍스트 인코딩을 올바르게 인식하지 못한다는 것입니다. 반면 VLC는 "자막 기본 설정"탭을 통해 올바르게 인식하도록 설정되어있을 것이므로 문제가없는 것입니다. 해결책은 간단합니다.

파일을 두 번 클릭하여 열지 않고 Gedit의 "열기"대화 상자를 통해 엽니 다 . 왼쪽 하단 a drop-down for Encoding에서 기본적으로 "자동 감지 됨"이 선택되어 있습니다. "Windows-1253"또는 "ISO-8859-7"로 설정하면 파일이 올바르게 열리고 나중에 문제가 발생하지 않도록 UTF-8로 저장할 수 있습니다.


0

다른 형식으로 변환 할 수 있고 수많은 기능이 포함 된 또 다른 자막 편집기는 Aegisub 입니다. VLC Media Player와 MPlayer에서 기본 형식 (.ass)을 지원하며이를 변환하면 인코딩 문제가 해결됩니다.


0

SRT 파일을 번역 할 때 DualSub 를 사용할 수도 있습니다 . 오픈 소스 (GPLv3)이며 크로스 플랫폼입니다. 구글 번역기를 사용합니다.


0

일반적인 정보를 위해 subtitle-index.org 가 있으며 많은 자막을 집중시키고 여러 기준 (기간, 맞춤법 검사, 책임, 인코딩)에 따라 순위를 매기고 UTF-8로 직접 다운로드하는 것이 가장 좋습니다.

꽤 잘 작동하면 매우 일반적이며 성가신 인코딩 문제를 피할 수 있습니다.


0

자막을 포함한 모든 텍스트 파일을 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')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.