Wie kann ich die Kodierung einer Untertiteldatei ändern?
14
Ich habe einen griechischen Untertitel für einen Film heruntergeladen. Dies wird angezeigt, wenn ich ihn mit Gedit öffne.
Untertitel funktionieren auf VLC hervorragend, alles perfekt. Aber was ist, wenn ich diesen Untertitel mit einigen griechischen Wörtern bearbeiten möchte? Ich erhalte sofort eine Fehlermeldung bezüglich der Zeichenkodierung.
Ich drücke auf "Wiederholen" und VLC erkennt die Untertitel nicht ...
Aus den Screenshots geht jedoch hervor, dass dies bei Ihrer .srtDatei nicht der Fall ist in Unicode codiert ist.
Wie sich herausstellt, iconvändert sich die Codierung der Datei in UTF-8, aber die konvertierte Datei enthält weiterhin dieselben Zeichen, die Sie beim Öffnen in Gedit sehen.
Die Lösung, die ich gefunden habe, ist folgende:
Öffnen Sie Gaupol und gehen Sie in das Menü Datei → Öffnen oder klicken Sie auf die Schaltfläche Öffnen .
Im unteren Teil des geöffneten Fensters befindet sich ein Auswahlmenü mit dem Titel Zeichenkodierung . Klicken Sie auf Andere ... (letzte Option).
Wählen Sie eine geeignete Kodierung für Ihre Datei aus, z. B. Griechisch ISO-8859-7 , und klicken Sie auf die Schaltfläche Akzeptieren .
Öffnen Sie nun Ihre .srtDatei und stellen Sie sicher, dass alle Zeichen korrekt gerendert wurden. Andernfalls wiederholen Sie den obigen Vorgang mit einer anderen Codierung. Sie können den Befehl ausführenfile -bi yourfile.srt , um die korrekte Codierung Ihrer Datei zu ermitteln (obwohl ich die Ergebnisse nicht unbedingt genau gelesen habe).
Öffnen Sie Ihre Untertiteldatei in der richtigen Zeichenkodierung und wechseln Sie zum Menü Datei → Speichern unter .... Ändern Sie die Zeichenkodierungsoption (wieder unten im Fenster) in UTF-8 und speichern Sie die Datei (möglicherweise mit ein neuer Name, aus Sicherheitsgründen).
Das gleiche Verfahren zum Hinzufügen der Codepage funktioniert auch für Gedit . Dennoch lasse ich die Anleitung für Gaupol, da es sich bei dieser Frage um Untertiteldateien handelt.
Ich habe bereits Gaupol, und es zeigt die Wörter wie meine Screenshots vor (in unlesbaren Buchstaben). Und wie ich bereits sagte, wenn ich UTF-8 als neue Codierung festgelegt habe, erkennt VLC die Untertitel nicht.
Leon Vitanos
Sie müssen die Codierung ändern, bevor Sie utf-8
carnendil
Könnten Sie etwas genauer sein? Ja, meine Codierung über Speichern unter ändern? U meine Änderung über Terminal mit "iconv" verschlüsseln? Beide versuchten, VLC wird den Untertitel danach nicht erkennen
Leon Vitanos
Es tut mir leid, ich musste mir einige griechische Untertitel besorgen, um das zu überprüfen. Tatsächlich iconvändert sich die Zeichencodierung, aber das Programm ersetzt nicht die Zeichen, die beim Öffnen als UTF-8 angezeigt werden. Bitte überprüfen Sie meine aktualisierte Antwort. Prost.
Öffnen Sie sie aus Kate-Editor können Sie den richtigen Text sehen, wenn Sie sie aus Gedit noch öffnen müssen, mit anderen Worten, dauerhaft ändern Sie die Codierung führen Sie den obigen Terminal-Befehl.
iconv, für das, was ich experimentieren konnte, wird die Kodierung der Datei ändern, aber keinen der Inhalte ersetzen, das heißt, nur die Zeichen, die zwischen der Quell- und Zielkodierung übereinstimmen, werden korrekt gerendert, alle anderen werden entsprechend gerendert wie die Zielcodierung sie versteht. Siehe meine Antwort und ihre Kommentare.
Carnendil
thnks @carnendil was ich gesagt habe war, dass es die Kodierung ändert, weil ich auch Griechisch bin (Englisch nicht Muttersprache), offensichtlich meinte ich Kodierung und nur in der Ausgabedatei steht die Eingabe noch im Verzeichnis, aber kannst du nett genug sein es in ein Bash-Skript implementieren? soll ich mich für die Schleife "for do. iconv ... done" entscheiden?
billybadass
diese Art der Antwort ist zu beachten, dass die Kodierung von den Video-Player-Einstellungen noch auf utf-8 geändert werden muss #! / bin / bash für Datei in * .srt do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file" && mv -f "$ file.new" "$ file" getan
billybadass
3
Ich würde empfehlen enca. Im Gegensatz zu Gaupol können Sie nicht nur Untertiteldateien, sondern auch beliebige Textdateien verarbeiten.
Installieren Sie enca:
sudo apt-get install enca
Um die Kodierung der Datei herauszufinden, prüfen Sie, ob enca sie erraten kann:
enca <file>
oder wenn es fehlschlägt und Sie die Sprache der Textdatei kennen, führen Sie es zum Beispiel aus
enca -L ru <file>
und sehen, was es dir gibt. Holen Sie sich die Liste der unterstützten Sprachen von man enca.
Ich würde empfehlen, auf UTF-8 zu konvertieren, Sie können es ausführen
enconv -x utf8 <file>
oder auch hier encakann ich die Sprache nicht erraten
Das Problem ist, dass Gedit (und viele andere Linux-Apps) die Kodierung des Texts nicht richtig erkennen. Dagegen ist VLC höchstwahrscheinlich so eingestellt, dass es es richtig erkennt (über die Registerkarte "Untertiteleinstellungen"), und deshalb haben Sie dort kein Problem. Die Lösung ist einfach:
Sie öffnen die Datei nicht durch Doppelklicken, sondern über das Dialogfeld "Öffnen" von Gedit . Dort finden Sie links unten ein drop-down for Encoding, in dem standardmäßig "Automatisch erkannt" ausgewählt ist. Stellen Sie "Windows-1253" oder "ISO-8859-7" ein und Sie können loslegen. Die Datei wird korrekt geöffnet. Sie können sie dann in UTF-8 speichern, um zukünftige Probleme zu vermeiden.
Ein weiterer Untertitel-Editor, mit dem Sie in verschiedene Formate konvertieren können (und der jede Menge Funktionen bietet), ist Aegisub . Das native Format (.ass) wird sowohl von VLC Media Player als auch von MPlayer unterstützt, und das Konvertieren in dieses Format sollte Codierungsprobleme beheben.
Zum Übersetzen von SRT-Dateien können Sie auch DualSub verwenden . Es ist Open Source (GPLv3) und plattformübergreifend. Es verwendet Google Übersetzer.
Zu Ihrer allgemeinen Information, jetzt gibt es subtitle-index.org , es konzentriert viele Untertitel, ordnet sie nach mehreren Kriterien (Dauer, Rechtschreibprüfung, Lesbarkeit, Kodierung) und bietet die beste im direkten Download als UTF-8.
Es funktioniert ziemlich gut und vermeidet Codierungsprobleme, die ziemlich allgemein und ärgerlich sind.
Dies ist eine Python3-Funktion zum Konvertieren von Textdateien einschließlich Untertiteln in solche mit UTF-8-Codierung.
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
ändert sich die Zeichencodierung, aber das Programm ersetzt nicht die Zeichen, die beim Öffnen als UTF-8 angezeigt werden. Bitte überprüfen Sie meine aktualisierte Antwort. Prost.Öffnen Sie sie aus Kate-Editor können Sie den richtigen Text sehen, wenn Sie sie aus Gedit noch öffnen müssen, mit anderen Worten, dauerhaft ändern Sie die Codierung führen Sie den obigen Terminal-Befehl.
quelle
iconv
, für das, was ich experimentieren konnte, wird die Kodierung der Datei ändern, aber keinen der Inhalte ersetzen, das heißt, nur die Zeichen, die zwischen der Quell- und Zielkodierung übereinstimmen, werden korrekt gerendert, alle anderen werden entsprechend gerendert wie die Zielcodierung sie versteht. Siehe meine Antwort und ihre Kommentare.Ich würde empfehlen
enca
. Im Gegensatz zu Gaupol können Sie nicht nur Untertiteldateien, sondern auch beliebige Textdateien verarbeiten.Installieren Sie enca:
Um die Kodierung der Datei herauszufinden, prüfen Sie, ob enca sie erraten kann:
oder wenn es fehlschlägt und Sie die Sprache der Textdatei kennen, führen Sie es zum Beispiel aus
und sehen, was es dir gibt. Holen Sie sich die Liste der unterstützten Sprachen von
man enca
.Ich würde empfehlen, auf UTF-8 zu konvertieren, Sie können es ausführen
oder auch hier
enca
kann ich die Sprache nicht erratendas sollte den Trick machen.
quelle
Das Problem ist, dass Gedit (und viele andere Linux-Apps) die Kodierung des Texts nicht richtig erkennen. Dagegen ist VLC höchstwahrscheinlich so eingestellt, dass es es richtig erkennt (über die Registerkarte "Untertiteleinstellungen"), und deshalb haben Sie dort kein Problem. Die Lösung ist einfach:
Sie öffnen die Datei nicht durch Doppelklicken, sondern über das Dialogfeld "Öffnen" von Gedit . Dort finden Sie links unten ein
drop-down for Encoding
, in dem standardmäßig "Automatisch erkannt" ausgewählt ist. Stellen Sie "Windows-1253" oder "ISO-8859-7" ein und Sie können loslegen. Die Datei wird korrekt geöffnet. Sie können sie dann in UTF-8 speichern, um zukünftige Probleme zu vermeiden.quelle
Ein weiterer Untertitel-Editor, mit dem Sie in verschiedene Formate konvertieren können (und der jede Menge Funktionen bietet), ist Aegisub . Das native Format (.ass) wird sowohl von VLC Media Player als auch von MPlayer unterstützt, und das Konvertieren in dieses Format sollte Codierungsprobleme beheben.
quelle
Zum Übersetzen von SRT-Dateien können Sie auch DualSub verwenden . Es ist Open Source (GPLv3) und plattformübergreifend. Es verwendet Google Übersetzer.
quelle
Zu Ihrer allgemeinen Information, jetzt gibt es subtitle-index.org , es konzentriert viele Untertitel, ordnet sie nach mehreren Kriterien (Dauer, Rechtschreibprüfung, Lesbarkeit, Kodierung) und bietet die beste im direkten Download als UTF-8.
Es funktioniert ziemlich gut und vermeidet Codierungsprobleme, die ziemlich allgemein und ärgerlich sind.
quelle
Dies ist eine Python3-Funktion zum Konvertieren von Textdateien einschließlich Untertiteln in solche mit UTF-8-Codierung.
quelle