Amarok versteht keine Umlaute/Sonderzeichen

Hinweis: In dem Thema Amarok versteht keine Umlaute/Sonderzeichen gibt es 7 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Amarok versteht keine Umlaute/Sonderzeichen

    Hallohallo,

    Ich hab ein relativ frisch aufgesetztes Tumbleweed (letzte Woche installiert). Ich hab mit libdvdcss und Packman die ganzen proprietären Formate nachinstalliert und Amarok funktioniert soweit auch mit mp3 und Co. Mir ist nur aufgefallen, dass meine Musik-Sammlung nicht vollständig ist. :(

    Also hab ich mal die Datenbank von Amarok gelöscht, den debug-Modus angeschmissen und mir angeschaut was bei einem kompletten Neu-Scan der Sammlung passiert. Wie sich herausstellte: Wenig spannendes, aber dafür etwas kritisches:

    Quellcode

    1. Directory "/home/tristan/Music/Musik/Keith Jarrett/The Kln Concert/" does not exist.
    Wer es nicht kennt: In diesem speziellen Fall geht es um "The Köln Concert" und Amarok hat offensichtlich das "ö" unterschlagen. Es gibt noch weitere Ordner mit "ä" und co, die Amarok ebenfalls nicht verwenden kann. Sogar das eingestrichene Anführungszeichen ("What I've Done" -> "What Ive Done"). Und zu guter letzt noch: "02 - DARK SOULS Ⅲ - Yuka Kitamura" verwendet statt 3x"I" ein Sonderzeichen, welches auch nicht erkannt wird. Mit anderen Worten: Alle Verzeichnisse und Dateien, die solche Sonderzeichen enthalten werden von Amarok nicht richtig eingelesen und danach nicht mehr wieder gefunden, was zur Folge hat, dass sie nicht in der Sammlung erscheinen. Sonderbar ist allerdings, dass Amarok sehr wohl in der Lage ist diese darzustellen, wenn solche Symbole nur in den Meta-Informationen stecken ist es scheinbar kein Problem. Ich habe z.B. zahlreiche japanische Songs, deren Dateien in Lateinschrift beziffert sind und in Amarok mit japanischen Schriftzeichen (aus den Meta-Informationen) dargestellt werden.

    Man könnte jetzt meinen "Dann nutz' doch einfach UTF-8, so wie es in allen gängigen Foren empfohlen wird.". Ich bin kein Experte, aber ich glaube, dass ich bereits UTF-8 nutze. Wie ihr gleich sehen werdet verwende ich allerdings nicht unbedingt den deutschen Standard. Ich installiere sämtliche Betriebssysteme grundsätzlich auf englisch, weil ich damit besser klar komme. Lediglich Datums- und Zahlen-Formate stelle ich danach auf Deutsch.

    Quellcode

    1. ~> locale
    2. locale: Cannot set LC_ALL to default locale: No such file or directory
    3. LANG=en_US.UTF-8
    4. LC_CTYPE=en_US.UTF-8
    5. LC_NUMERIC=en_DE.UTF-8
    6. LC_TIME=en_DE.UTF-8
    7. LC_COLLATE="en_US.UTF-8"
    8. LC_MONETARY=en_DE.UTF-8
    9. LC_MESSAGES="en_US.UTF-8"
    10. LC_PAPER="en_US.UTF-8"
    11. LC_NAME="en_US.UTF-8"
    12. LC_ADDRESS="en_US.UTF-8"
    13. LC_TELEPHONE="en_US.UTF-8"
    14. LC_MEASUREMENT="en_US.UTF-8"
    15. LC_IDENTIFICATION="en_US.UTF-8"
    16. LC_ALL=
    Alles anzeigen
    Da ich einzelne der Formate überschrieben habe wundert es mich nicht, dass LC_ALL nicht gesetzt ist, aber dass es überhaupt kein Default gibt wundert mich dann schon... so mindestens mal als Fallback sollte so etwas doch vorhanden sein? Dennoch: Alles was dort gesetzt ist ist schon mal UTF-8.

    Probehalber hab ich die Datenbank von Amarok dann mal auf meinen lokalen mysql Server (Standardinstallation mariadb) umgeleitet und mit mit phpMyAdmin angeschaut wie die Datenbank aussieht: Sie verwendet als Standard-Kollation uft8_bin, was meines Wissens nach die richtige Kollation ist. Zuvor nicht richtig erkannte Verzeichnisse/Dateien erhalten auch überhaupt keinen Eintrag in der Datenbank (Was mir auch korrekt erscheint).

    Es ist nicht auszuschließen dass ich mich mit meiner Fehlersuche auf dem Holzweg befinde, aber ich hoffe ich konnte einen guten Einblick/Start in das Problem geben und dass ihr mir damit helfen könnt. Ich gebe euch natürlich gern noch weitere Informationen, wenn gewünscht. :)

    lg.
    antarctris

    Für den Inhalt des Beitrages 116691 haftet ausdrücklich der jeweilige Autor: antarctris

  • Die Musik-Sammlung ist eine einfache Order-Struktur. "Musik -> Interpret -> Album -> Song".
    Ich habe Amarok wie gewöhnlich einfach gesagt, dass es in meinem "Musik" Verzeichnis nach Songs und Co suchen soll und Amarok hat es daraus selbst erstellt.

    Windows hatte nie Gelegenheit diese Order anzufassen (Ich hab zwar Dual-Boot, aber die Systeme verwenden unabhängige Festplatten, die Musiksammlung liegt auf einer ext4 formatierten Platte, in Linux als /home eingebunden).

    Für den Inhalt des Beitrages 116702 haftet ausdrücklich der jeweilige Autor: antarctris

  • So,

    ich hab jetzt mal ganz naiv folgendes gemacht:

    Quellcode

    1. ~> export LC_ALL=en_US.UTF-8
    2. ~> locale
    3. LANG=en_US.UTF-8
    4. LC_CTYPE="en_US.UTF-8"
    5. LC_NUMERIC="en_US.UTF-8"
    6. LC_TIME="en_US.UTF-8"
    7. LC_COLLATE="en_US.UTF-8"
    8. LC_MONETARY="en_US.UTF-8"
    9. LC_MESSAGES="en_US.UTF-8"
    10. LC_PAPER="en_US.UTF-8"
    11. LC_NAME="en_US.UTF-8"
    12. LC_ADDRESS="en_US.UTF-8"
    13. LC_TELEPHONE="en_US.UTF-8"
    14. LC_MEASUREMENT="en_US.UTF-8"
    15. LC_IDENTIFICATION="en_US.UTF-8"
    16. LC_ALL=en_US.UTF-8
    Alles anzeigen
    Und amarok danach nochmal angewiesen den kompletten Rescan zu machen. Das hat funktioniert, die Musiksammlung ist jetzt vollständig..

    Ich werde die Währungs-, Datums- und Zahlenformate dann mal wieder umstellen und mich dran gewöhnen, das in Zukunft zu jedem Update der Musiksammlung in Amarok machen zu müssen.. Wahrscheinlich schreibe ich mir spätestens beim nächsten mal einfach nen Skript dazu :smilie_pc_011:

    EDIT:

    Total vergessen: Trotzdem danke für die Hilfsbereitschaft!

    Für den Inhalt des Beitrages 116709 haftet ausdrücklich der jeweilige Autor: antarctris

  • Selbstverständlich gibt es eine Default- Sprache.
    Die nennt sich LANG=C; der Name ist von der Programmiersprache C abgeleitet.
    Danach kommen ein paar POSIX Spracheinstellungen, die man als Otto-Normal-Linuxer nicht einmal kennt.
    (Es gibt da ein paar subtile Unterschiede zu C)

    Historisch kamen dann die Spracheinstellungen, die mal für die User, mal für das System alle Arten von Codierungen festlegten.
    Für Europa meist irgendwelche LatinX Zeichensätze.
    Das ist komplett veraltet und hat nur noch seine Berechtigung wegen der Rückwärtskompatibilibtät.
    Einstellen kann man natürlich trotzdem noch alle, wie immer unter Linux.
    Ob man dann auch das gewünschte Ergebnis auf dem Bildschirm sieht, ist nicht gesagt.
    Dafür braucht es auch noch entsprechende Fonts, damit das alles korrekt dargestellt werden kann.

    Heute verwenden wir nur noch UTF-8.
    Aber auch hier gilt: Der verwendete Font muss das auch darstellen können.
    UTF-8 ist das UnicodeTranslationFormat. Unicode selbst ist eine sehr große Tabelle, die nicht nur alle Schriftzeichen, sondern auch sehr viele Symbole und sogar Klingonisch enthält.
    Es gilt hier aber genauso, dass ein entsprechender Font installiert ist, damit man das gewünschte auch sehen kann.
    Aus Laufzeitgründen sind in den meisten Fonts nur ein sehr geringer Ausschnitt aus den über 7Millionen Codepunkten, die in Unicode definiert sind, implementiert. (Es gibt einige komplette Fonts, deren Größe dann regelmäßig bei weit über 100MB liegt. Was sie für schnelle Reaktionen und für das Web komplett unbrauchbar machen)

    Du scheiterst aber schon an anderen Basics.
    Im Amerikanischen gibt es halt einmal schlicht kein ö, kein ä und dergleichen.
    Du verlangst mit deinen Einstellungsversuchen explizit eben keine zu verwenden.
    Eigentlich einsehbar.
    Deine Behauptung, dass du mit Englisch besser zurechtkommen würdest, in einem Thread, in dem du das Fehlen von Umlauten bemängelst, ist einigermaßen fragwürdig. Ich würde eher das Gegenteil behaupten.

    Stelle das Ding einfach korrekt auf LANG=de_DE.UTF-8, wie es sich gehört, und du siehst dein "Köln".

    Und wirf bitte nicht alles in einen Topf. Das funktioniert bei Linux nicht.
    Sehr wohl kann root und das System selbst nativ amerikanisch sprechen, User Heinz aber mit Teutscher Sprache samt Umlauten toben, während User Sergeij prima YouPr0n auf kyrillisch guckt. Dass Prof. Dr. Sehralt Linear2 für seine Studien der babylonischen Sprache und Kultur verwendet beeinträchtigt weder das System, noch die Pornos, noch die Umlaute.
    Es sind Usereinstellungen.

    Und man kann JEDE Sprache installiert haben und munter dazwischen hin- und herschalten.
    Aber bei keiner Einstellung wird Amerikanisch zu Deutsch, Koptisch oder Serbokroatisch.

    Es sind noch ein paar mehr Fakten nötig, um zu verstehen, was da passiert.
    Dein export LC_ALL=en_US.UTF-8 wird wohl sinnlos bleiben, solange du AmaroK dann nicht aus genau dieser Konsole auch startest.
    Der Befehl export ist ein Bash- interner Befehle, der Variablen für den Export markiert. Das heißt auf deutsch, dass diese Variable in der laufenden Shellsitzung gültig ist UND in allen davon erzeugten Kindprozessen.
    Startest du Amaraok, wie gewohnt, über das Menu des DEs, so hat dieser Befehl keinerlei Wirkung.
    Außerdem wird vermutlich die Variable LANG gesetzt sein. Ist die gesetzt, so werden die LC_* Variablen nicht mehr beachtet.
    LANG hat Vorrang vor allen LC* Variablen.

    Die Methode via Sprachvariablen das Gequatsche zu steuern, ist auch nicht mehr so ganz zeitgemäß.
    Das mag für Konsolenhacker angehen (ich verwende sie auch noch in Shellscripten), aber für das DE sicher nicht sinnvoll.
    Dein Freund ist das moderne localectl.
    Und probiere mal local<tab><tab>, um dir mittels Completion anzeigen zu lassen, wieviele Befehle es wirklich gibt, um sich die Spracheinstellungen zu verbiegen. (Die meisten kommen auch mit entsprechender Manpage: man localectl)

    Was du vermutlich wirklich möchtest, ist, dass Programme die Oberfläche in Englisch anzeigen, und du ganz normal arbeiten kannst.
    Bei mir zeigt kpat (Patiencen) die ersten Spiele in Amerikanisch, alle anderen in Neugriechisch an, Systemeinstellungen sprechen französisch mit mir; nur ein paar Gnomeprogramme sind schwierig, die sprechen Hebräisch mit mir. Das nenn ich mal professionell verhaut.
    Muttu üben, geht aber natürlich auch.
    Es gibt auch einen gewaltigen Unterschied zwischen Tastaturbelegung und Programmanzeige. Man kann Spracheinstellungen machen und eine komplett andere Tastaturbelegung verwenden.
    Davon rate ich generell ab, bis man den großen Linuxrettungschwimmerschein hat.
    Sokrates sagte, dass er nichts wisse.
    Ich bin viel, viel klüger als Sokrates.
    Ich weiß ganz genau, dass ich gar nichts weiß.

    Für den Inhalt des Beitrages 116717 haftet ausdrücklich der jeweilige Autor: Berichtigung

  • Ja, dass die Einstellungen durch export nicht von Dauer sein würden habe ich mir schon gedacht, war mir nur nicht mehr sicher, ich brauche den Befehl nur sehr selten. So musste ich jedenfalls nichts zurückstellen, was ich ganz gut finde.

    Klingonisch find ich super, ich kanns nur leider nicht selbst :thumbsup:


    Und was die Spracheinstellung angeht: Du hast es vollkommen richtig erkannt, die Oberfläche der Programme im DE sollen englisch sein. Aber alles was im CLI läuft möchte ich genauso haben. Sowohl für meinen normalen Benutzer als auch für root.
    Für den Fall amarok ist die Sache jedenfalls erledigt. Und ansonsten sind die Spracheinstellungen auch so wie ich sie mir wünsche, bzw. ich habe weder im DE noch im CLI sonst noch Ungereimtheiten entdeckt.

    Abgesehen davon ist es mir ein Rästel wieso das ganze erst mit export LC_ALL funktioniert hat, wenn es sowieso ignoriert werden sollte? LANG war schließlich schon vorher gesetzt.
    Und ob ich es jetzt auf englisches oder auf deutsches UTF-8 stelle scheint auch keinen großen Unterschied zu machen, es hat mit dem englischen schließlich funktioniert.

    Wie UTF prinzipiell gedacht ist und funktionieren soll, dachte ich zu wissen..
    Aber ich werde mich nochmal ein wenig mehr mit den local*-Befehlen auseinandersetzen. Vor allem localectl, wenn das unser magisches zeitgemäßes Tool sein soll, ist es sicherlich nicht verkehrt, damit umgehen zu können. Auf jedenfall nochmal danke für die vielen Infos!


    lg.
    antarctris

    Für den Inhalt des Beitrages 116728 haftet ausdrücklich der jeweilige Autor: antarctris

  • Hallo antarctris, ich würde keine Umlaute und ähnliche Sonderzeichen verwenden.

    Es funktioniert zwar alles schon auf den meisten Betriebsystemen. Wenn Du aber eine Datenrettung brauchst schafft es nur Probleme. Bei meinem Arbeitgeber ist sowas verboten. Dort darf nur streng nach der Norm abgelegt werden. Immer mit Unterstrich statt Leerzeichen. Keine Punkte vor der Dateiextension.

    Gruß
    Caroline

    Für den Inhalt des Beitrages 116914 haftet ausdrücklich der jeweilige Autor: caroline

www.cyberport.de