{"id":1222,"date":"2023-02-12T22:30:58","date_gmt":"2023-02-12T21:30:58","guid":{"rendered":"https:\/\/www.krombusch.de\/?p=1222"},"modified":"2023-02-12T22:36:46","modified_gmt":"2023-02-12T21:36:46","slug":"webserver-umzug-windows-zu-linux-umlaute-in-dateinamen","status":"publish","type":"post","link":"https:\/\/www.krombusch.de\/?p=1222","title":{"rendered":"Webserver-Umzug Windows zu Linux: Umlaute in Dateinamen"},"content":{"rendered":"<p>Eigentlich sollte das Thema Zeichencodierung in Dateinamen irgendwann mal durch sein. Ich bin aber beim Umzug einer WordPress-Seite wieder reingerannt. Konkret wurde der wp-content &#8211; Ordner mit knapp 400.000 Bild-Dateien von einem Windows 2012 R2 &#8211; Webserver aus per winscp auf einen Ubuntu 20.04-Server \u00fcbertragen. Das Ganze hat ohne Fehler funktioniert, doch bald beschwerte sich die Betreiberin der Webseite \u00fcber fehlende Bilder. Man sieht das Problem schon:<\/p>\n<p><a href=\"https:\/\/www.krombusch.de\/?attachment_id=1223\" rel=\"attachment wp-att-1223\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1223\" src=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute01.jpg\" alt=\"\" width=\"1446\" height=\"1042\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute01.jpg 1446w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute01-300x216.jpg 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute01-1024x738.jpg 1024w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute01-768x553.jpg 768w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute01-1062x765.jpg 1062w\" sizes=\"auto, (max-width: 1446px) 100vw, 1446px\" \/><\/a><\/p>\n<p>Offensichtlich hatte die Dame in den Dateinamen Sonderzeichen, zumindest aber mal die Umlaute, gerne verwendet. Immer gef\u00e4hrlich. Beachte stets die Regel 8.3 ohne Leerzeichen \ud83d\ude42<br \/>\nEin Blick in den Dateimanager von Plesk zeigt das Problem an (kein UTF-8).<\/p>\n<p><a href=\"https:\/\/www.krombusch.de\/?attachment_id=1224\" rel=\"attachment wp-att-1224\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1224\" src=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02.jpg\" alt=\"\" width=\"1908\" height=\"916\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02.jpg 1908w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02-300x144.jpg 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02-1024x492.jpg 1024w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02-768x369.jpg 768w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02-1536x737.jpg 1536w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute02-1530x735.jpg 1530w\" sizes=\"auto, (max-width: 1908px) 100vw, 1908px\" \/><\/a><\/p>\n<p>Auch auf der Kommandozeile wird es definitiv nicht besser.<\/p>\n<p><a href=\"https:\/\/www.krombusch.de\/?attachment_id=1225\" rel=\"attachment wp-att-1225\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1225\" src=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03.jpg\" alt=\"\" width=\"2010\" height=\"916\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03.jpg 2010w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03-300x137.jpg 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03-1024x467.jpg 1024w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03-768x350.jpg 768w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03-1536x700.jpg 1536w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute03-1530x697.jpg 1530w\" sizes=\"auto, (max-width: 2010px) 100vw, 2010px\" \/><\/a><\/p>\n<p>Man h\u00e4tte nun die ganzen Dateinamen mit Umlauten aus der MySql-Datenbank mit einem regex suchen und ersetzen k\u00f6nnen, aber im Dateisystem h\u00e4tte die Umbenennung von &#8222;\u00df&#8220; zu &#8222;ss&#8220; usw. wohl nur \u00fcber einen erneuten Down-\/Upload der betroffenen Ordner funktioniert. So sehr Linux-Experte bin ich dann auch nicht, als dass ich ohne Ausgabe von ls, find oder egrep (die ja alle die falschen Namen lieferten) zu Rande komme.<br \/>\nDa wir aber schon im Jahr 2023 sind, habe ich mir einfach vorgestellt, dass man mittlerweile auch mal Umlaute in Dateinamen verwenden kann. Mit dem sch\u00f6nen Tool &#8222;convmv&#8220; und seinem Schalter -r (f\u00fcr rekursiv) lief die Fehlerbehebung insofern nur auf einen Befehl hinaus. Hier am Beispiel, man beachte die letzen beiden Zeilen der Ausgabe im dry-run:<br \/>\n<a href=\"https:\/\/www.krombusch.de\/?attachment_id=1226\" rel=\"attachment wp-att-1226\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1226\" src=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04.jpg\" alt=\"\" width=\"2010\" height=\"598\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04.jpg 2010w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04-300x89.jpg 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04-1024x305.jpg 1024w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04-768x228.jpg 768w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04-1536x457.jpg 1536w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute04-1530x455.jpg 1530w\" sizes=\"auto, (max-width: 2010px) 100vw, 2010px\" \/><\/a><\/p>\n<p>&#8230; und in echt: <em><span class=\"s1\">convmv -r &#8211;notest -f iso-8859-1 -t utf-8 wp-content\/uploads<\/span><\/em><a href=\"https:\/\/www.krombusch.de\/?attachment_id=1227\" rel=\"attachment wp-att-1227\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1227\" src=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06.jpg\" alt=\"\" width=\"2156\" height=\"910\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06.jpg 2156w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06-300x127.jpg 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06-1024x432.jpg 1024w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06-768x324.jpg 768w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06-1536x648.jpg 1536w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06-2048x864.jpg 2048w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute06-1530x646.jpg 1530w\" sizes=\"auto, (max-width: 2156px) 100vw, 2156px\" \/><\/a><\/p>\n<p>Anschlie\u00dfend leert man den Browsercache und l\u00e4dt die Seite neu:<br \/>\n<a href=\"https:\/\/www.krombusch.de\/?attachment_id=1228\" rel=\"attachment wp-att-1228\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1228\" src=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute05.jpg\" alt=\"\" width=\"1264\" height=\"914\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute05.jpg 1264w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute05-300x217.jpg 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute05-1024x740.jpg 1024w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute05-768x555.jpg 768w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2023\/02\/umlaute05-1058x765.jpg 1058w\" sizes=\"auto, (max-width: 1264px) 100vw, 1264px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eigentlich sollte das Thema Zeichencodierung in Dateinamen irgendwann mal durch sein. Ich bin aber beim Umzug einer WordPress-Seite wieder reingerannt. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1222","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts\/1222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1222"}],"version-history":[{"count":3,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts\/1222\/revisions"}],"predecessor-version":[{"id":1231,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts\/1222\/revisions\/1231"}],"wp:attachment":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}