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


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.