Skript zum Umbenennen nach UTF-8-Zeichen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von wanne » 03.04.2023 13:11:38

Hier noch eine Anmerkung. unihandecode ist in 99% der Fälle das sinnvollere unidecode. Problem ist, dass unidecode lediglich formähnliche statt sinnähnliche Buchstaben sucht. So wird ä zu a statt zu ae. Und є zu e statt je. Entsprechend sollte die Sprache korrekt gesetzt sein. Wobei das fürs Kyrillisch ist das seit 1995 nicht mehr so relevant, weil sich im Moment die einheitliche transliteration durchgesetzt hat. Aber lass nochmal ein zwei Jahre Krieg in der Ukraine und das ändert sich wieder.
rot: Moderator wanne spricht, default: User wanne spricht.

Huo
Beiträge: 783
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von Huo » 03.04.2023 14:38:10

wanne hat geschrieben: ↑ zum Beitrag ↑
03.04.2023 13:11:38
Problem ist, dass unidecode lediglich formähnliche statt sinnähnliche Buchstaben sucht.
Das finde ich in dieser Allgemeinheit nicht bestätigt, für kyrillische Buchstaben schon gar nicht. Das kyrillische н erinnert beispielsweise an ein H, wird von unidecode (Version: 1.3.6) aber korrekt zu n transkribiert. € wird sinnvollerweise zu EUR, ß zu ss. Und was stellst du dir unter formähnlichen Buchstaben für chinesische Schriftzeichen vor? :wink: ... Was die Umlaute betrifft hast du allerdings recht.

Nachtrag:
Und є zu e statt je
Bei mir zu ie, das finde ich okay.

rohodeb
Beiträge: 144
Registriert: 27.11.2020 09:33:45

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von rohodeb » 04.04.2023 07:29:44

Guten Morgen,

wird das griechische є nicht ebenso ausgesprochen wie das russische э - also mehr ä als ie?

Ich bin hier https://stackoverflow.com/questions/954 ... characters auf eine Lösung gestoßen, die uconv aus den icu-devtools verwendet. Damit konnte ich kyrillische Dateinamen in lateinische umbenennen - allerdings habe ich nur Großbuchstaben erhalten. Das fand ich dann nicht ganz so toll. Das Skript selbst ist hier http://eadmaster.altervista.org/pub/prj/cliapps/detox zu finden.

Auf dieser Seite wird auch ein Script vorgestellt, das ohne Drittwerkzeuge, außer sed, auskommt - hier https://vladimir-ivanov.net/batch-renam ... ile-names/.
Hier wird geprüft, welche kyrillischen Zeichen enthalten sind und dann, entsprechend der im Skript mit declare erstellten Liste dictionary, ausgetauscht. Sollten Zeichen fehlen, wie hier das ы, dann kann die Liste ja einfach erweitert werden.
Bei mir brach das Skript aber mit einem unexpected ( bereits in Zeile 2 ab. Könnte das am Befehl declare liegen?

Auf jeden Fall muss ich mich weiter ans Werk machen, die hier anderen vorgeschlagenen Lösungen probieren.

Huo
Beiträge: 783
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von Huo » 04.04.2023 08:32:32

rohodeb hat geschrieben: ↑ zum Beitrag ↑
04.04.2023 07:29:44
wird das griechische є nicht ebenso ausgesprochen wie das russische э - also mehr ä als ie?
Guten Morgen, nur eine kleine Off-Topic-Anmerkung: Ich habe є in eine Suchmaschine hineinkopiert und von Wikipedia erfahren, dass es sich um einen ukrainischen Buchstaben handelt, der "je" ausgesprochen wird: https://de.wikipedia.org/wiki/%D0%84
Die gängige englischprachige Transkription lautet "ye" wie in yes.

rohodeb
Beiträge: 144
Registriert: 27.11.2020 09:33:45

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von rohodeb » 04.04.2023 09:33:23

Aha, OK - danke für den Hinweis. Dann ist das ein Unterschied zum russischen Alphabet. Natürlich gibt es noch weitere.
Wir lernen täglich dazu. :)

wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von wanne » 05.04.2023 02:41:47

Das kyrillische н erinnert beispielsweise an ein H, wird von unidecode (Version: 1.3.6) aber korrekt zu n transkribiert. € wird sinnvollerweise zu EUR, ß zu ss.
Ich weiß, dass sie für kyrillische explizit ausnahmen machen, weil das sonst absolut unlesbar wird und Kanji einfach durch _. ss und EUR wundert mich, das sie derartige ausnahmen eigentlich weitestgehend beseitigen wollten.

Fürs Thema ist relevanter dass, unihandecode au unidecode zurück, wenn es nicht sinnvoller kann. In sofern sollte es auf keinen Fall schadet. Haupt Feature ist halt, dass du die Sprache angeben kannst um bessere Ergebnisse zu erzielen Unihandecoder(lang='de') erkennt halt umlaute und dass es Kontext kann. (Also gesonderte Umschriften für Wortanfänge, wie das in einigen Sprachen üblich ist.)
rot: Moderator wanne spricht, default: User wanne spricht.

Huo
Beiträge: 783
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von Huo » 05.04.2023 10:13:24

wanne hat geschrieben: ↑ zum Beitrag ↑
05.04.2023 02:41:47
Unihandecoder(lang='de') erkennt halt umlaute und dass es Kontext kann.
unihandecode, per pip installiert, bringt nur Decoder für diverse asiatische Sprachen mit (ja, kr, uni, vn), aber kein de. Ohne einen solchen transkribiert unihandecode ä auch nur zu a. Unihandecoder(lang='de') wirft bei mir einen Fehler aus.

Aber dem Threadstarter geht es ja um die kyrillischen Buchstaben. Hier transkribieren die drei Kandidaten anyascii, unidecode und unihandecode durchaus unterschiedlich:

Модест Петрович Мусоргский
anyascii -> Modest Petrovich Musorgskiy
unidecode -> Modest Petrovich Musorgskii
unihandecode -> Modiest Pietrovich Musorghskii

Санкт-Петербург
anyascii und unidecode -> Sankt-Peterburg
unihandecode -> Sankt-Pietierburgh

Gruß

Code: Alles auswählen

$ unidecode -c "火"
Huo 

rohodeb
Beiträge: 144
Registriert: 27.11.2020 09:33:45

Re: Skript zum Umbenennen nach UTF-8-Zeichen

Beitrag von rohodeb » 05.04.2023 11:18:52

Hallo,
danke für Eure Antworten und Mühe mit diesem Thema.

Für mein Verständnis liefert unidecode das bessere Ergebnis. Aber es gibt bestimmt auch verschiedene Transkriptionsregeln.
Ich für meinen Teil könnte ja sagen: Hauptsache, ich kann es lesen und vestehen. Schließlich erstelle ich keine wissenschaftliche Arbeit, die veröffentlicht wird.

Antworten