Pobrałem grecki napis do filmu i to właśnie widzę, gdy otwieram go za pomocą Gedit.
Podtytuł działa świetnie na VLC, wszystko idealnie. Ale co, jeśli chcę edytować ten podtytuł z greckimi słowami? Natychmiast pojawia się błąd dotyczący kodowania znaków.
Nacisnąłem ponownie, a potem VLC nie rozpoznaje napisów ...
Jednak na zrzutach ekranu widać, że .srtplik nie jest zakodowany w standardzie Unicode.
Jak się okazuje, iconvzmienia kodowanie pliku na UTF-8, ale przekonwertowany plik nadal będzie miał te same znaki, które widzisz podczas otwierania w Gedit.
Znalazłem rozwiązanie:
Otwórz Gaupol i przejdź do menu Plik → Otwórz lub kliknij przycisk Otwórz .
W dolnej części otwartego okna znajduje się menu wyboru, zatytułowane Kodowanie znaków . Kliknij Inne ... (ostatnia opcja).
Wybierz odpowiednie kodowanie pliku, np. Grecki ISO-8859-7 , i kliknij przycisk Akceptuj .
Teraz otwórz .srtplik i upewnij się, że wszystkie znaki są poprawnie renderowane. W przeciwnym razie powtórz powyższą procedurę z innym kodowaniem. Możesz uruchomić polecenie, file -bi yourfile.srtaby ustalić poprawne kodowanie pliku (chociaż przeczytałem, że wyniki niekoniecznie są dokładne).
Po otwarciu pliku napisów z prawidłowym kodowaniem znaków przejdź teraz do menu Plik → Zapisz jako ... i zmień opcję kodowania znaków (ponownie u dołu okna) na UTF-8 i zapisz plik (prawdopodobnie z nowa nazwa, dla bezpieczeństwa).
Ta sama procedura dodawania strony kodowej będzie działać w Gedit . Jednak zostawiam instrukcje dla Gaupola, ponieważ to pytanie dotyczy plików z napisami.
Mam już gaupol, który pokazuje słowa takie jak moje zrzuty ekranu wcześniej (nieczytelnymi literami). I jak powiedziałem wcześniej, jeśli
ustawię
musisz zmienić kodowanie, zanim będziesz mógł edytować i golić się jako utf-8
carnendil
Czy możesz być bardziej szczegółowy? Yoy oznacza zmianę kodowania poprzez zapisywanie jako? Masz na myśli zmianę kodowania przez terminal z „iconv”? Obie wypróbowane, VLC nie rozpozna po tym podtytułu
Leon Vitanos
Przepraszam, musiałem zdobyć napisy w języku greckim, żeby to sprawdzić. Rzeczywiście, iconvzmienia się kodowanie znaków, ale program nie zastąpi znaków wyświetlanych po otwarciu jako UTF-8. Proszę sprawdzić moją zaktualizowaną odpowiedź. Twoje zdrowie.
Otwórz je z edytora Kate, aby zobaczyć odpowiedni tekst, jeśli nadal musisz je otworzyć z Gedit, innymi słowy, trwale zmień kodyfikację, uruchom powyższe polecenie terminalu.
iconv, ponieważ to, co mogłem eksperymentować, zmieni kodowanie pliku, ale nie zastąpi żadnej zawartości, to znaczy, tylko znaki, które pokrywają się z kodowaniem źródłowym i docelowym, będą renderowane poprawnie, wszystkie inne będą renderowane zgodnie z jak kodowanie docelowe je rozumie. Zobacz moją odpowiedź i ich komentarze.
carnendil
dzięki @carnendil to, co powiedziałem, że to zmienia kodyfikację, ponieważ jestem również greckim (angielski nie jest językiem ojczystym), oczywiście miałem na myśli kodowanie i tylko w pliku wyjściowym dane wejściowe nadal znajdują się w katalogu, ale czy możesz być na tyle miły, aby wdrożyć to w skrypcie bash? powinienem wybrać pętlę „do zrobienia. iconv ... gotowe”?
billybadass
tego rodzaju odpowiedź, pamiętaj, że nadal musisz zmienić kodowanie na utf-8 z preferencji odtwarzacza wideo #! / bin / bash dla pliku w * .srt do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file" && mv -f "$ file.new" "$ file" gotowe
billybadass
3
Polecam enca. W przeciwieństwie do gaupola, możesz obsługiwać nie tylko pliki napisów, ale każdy plik tekstowy.
Zainstaluj enca:
sudo apt-get install enca
Aby dowiedzieć się, jak kodować plik, sprawdź, czy enca może go odgadnąć:
enca <file>
lub, jeśli zawiedzie i znasz język pliku tekstowego, uruchom na przykład
enca -L ru <file>
i zobacz, co ci daje. Pobierz listę obsługiwanych języków z man enca.
Polecam konwersję na UTF-8, możesz to zrobić, uruchamiając
Problem polega na tym, że Gedit (i wiele innych aplikacji linuksowych) nie rozpoznaje poprawnie kodowania tekstu. Z drugiej strony VLC najprawdopodobniej jest ustawione na prawidłowe rozpoznawanie (poprzez zakładkę „Preferencje napisów”) i dlatego nie ma tam żadnego problemu. Rozwiązanie jest proste:
Nie otwierasz pliku poprzez dwukrotne kliknięcie, ale poprzez okno dialogowe „Otwórz” Gedit . Tam możesz znaleźć w lewym dolnym rogu a drop-down for Encoding, w którym domyślnie wybrana jest opcja „Wykryto automatycznie”. Ustaw go na „Windows-1253” lub „ISO-8859-7” i możesz zacząć, plik otwiera się poprawnie (a następnie możesz zapisać go w UTF-8, aby uniknąć problemów w przyszłości)
Innym edytorem napisów, który pozwala na konwersję do różnych formatów (i ma mnóstwo funkcji) jest Aegisub . Jego rodzimy format (.ass) jest obsługiwany przez VLC Media Player, a także MPlayera i konwersja do niego powinna rozwiązać problemy z kodowaniem.
Do tłumaczenia plików SRT możesz także użyć DualSub . Jest to oprogramowanie typu open source (GPLv3) i wieloplatformowe. Korzysta z Google Translator.
Dla twoich ogólnych informacji, teraz jest subtitle-index.org , koncentruje wiele napisów, uszeregowuje je według wielu kryteriów (czas trwania, sprawdzanie pisowni, czytelność, kodowanie) i oferuje najlepsze z bezpośredniego pobierania jako UTF-8.
Działa całkiem dobrze, pozwala uniknąć problemów z kodowaniem, które są dość powszechne i irytujące.
Jest to funkcja Python3 do konwersji dowolnych plików tekstowych, w tym napisów, na pliki z kodowaniem UTF-8.
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')
iconv
zmienia się kodowanie znaków, ale program nie zastąpi znaków wyświetlanych po otwarciu jako UTF-8. Proszę sprawdzić moją zaktualizowaną odpowiedź. Twoje zdrowie.Otwórz je z edytora Kate, aby zobaczyć odpowiedni tekst, jeśli nadal musisz je otworzyć z Gedit, innymi słowy, trwale zmień kodyfikację, uruchom powyższe polecenie terminalu.
źródło
iconv
, ponieważ to, co mogłem eksperymentować, zmieni kodowanie pliku, ale nie zastąpi żadnej zawartości, to znaczy, tylko znaki, które pokrywają się z kodowaniem źródłowym i docelowym, będą renderowane poprawnie, wszystkie inne będą renderowane zgodnie z jak kodowanie docelowe je rozumie. Zobacz moją odpowiedź i ich komentarze.Polecam
enca
. W przeciwieństwie do gaupola, możesz obsługiwać nie tylko pliki napisów, ale każdy plik tekstowy.Zainstaluj enca:
Aby dowiedzieć się, jak kodować plik, sprawdź, czy enca może go odgadnąć:
lub, jeśli zawiedzie i znasz język pliku tekstowego, uruchom na przykład
i zobacz, co ci daje. Pobierz listę obsługiwanych języków z
man enca
.Polecam konwersję na UTF-8, możesz to zrobić, uruchamiając
lub ponownie, jeśli
enca
nie można odgadnąć językato powinno załatwić sprawę.
źródło
Problem polega na tym, że Gedit (i wiele innych aplikacji linuksowych) nie rozpoznaje poprawnie kodowania tekstu. Z drugiej strony VLC najprawdopodobniej jest ustawione na prawidłowe rozpoznawanie (poprzez zakładkę „Preferencje napisów”) i dlatego nie ma tam żadnego problemu. Rozwiązanie jest proste:
Nie otwierasz pliku poprzez dwukrotne kliknięcie, ale poprzez okno dialogowe „Otwórz” Gedit . Tam możesz znaleźć w lewym dolnym rogu a
drop-down for Encoding
, w którym domyślnie wybrana jest opcja „Wykryto automatycznie”. Ustaw go na „Windows-1253” lub „ISO-8859-7” i możesz zacząć, plik otwiera się poprawnie (a następnie możesz zapisać go w UTF-8, aby uniknąć problemów w przyszłości)źródło
Innym edytorem napisów, który pozwala na konwersję do różnych formatów (i ma mnóstwo funkcji) jest Aegisub . Jego rodzimy format (.ass) jest obsługiwany przez VLC Media Player, a także MPlayera i konwersja do niego powinna rozwiązać problemy z kodowaniem.
źródło
Do tłumaczenia plików SRT możesz także użyć DualSub . Jest to oprogramowanie typu open source (GPLv3) i wieloplatformowe. Korzysta z Google Translator.
źródło
Dla twoich ogólnych informacji, teraz jest subtitle-index.org , koncentruje wiele napisów, uszeregowuje je według wielu kryteriów (czas trwania, sprawdzanie pisowni, czytelność, kodowanie) i oferuje najlepsze z bezpośredniego pobierania jako UTF-8.
Działa całkiem dobrze, pozwala uniknąć problemów z kodowaniem, które są dość powszechne i irytujące.
źródło
Jest to funkcja Python3 do konwersji dowolnych plików tekstowych, w tym napisów, na pliki z kodowaniem UTF-8.
źródło