Att byta teckenkodning på filnamn

När man kopierar filer mellan olika system så behåller filnamnen sin ursprungliga teckenkodning. Om teckenkodningen skiljer sig åt mellan systemen så kan det innebära att filnamnen ser konstiga ut. Vissa program kan dessutom få problem med dessa filer när de upptäcker underliga tecken i dem.

Som ett exempel så kan vi ta filen mitt älsklingsrecept på köttbullesmörgås.txt. Om detta filnamn är skrivet i teckenkodningen ISO-8859-1 och systemet ät inställt på UTF-8 så visas filen något i stil med

mitt_�lsklingsrecept_p�_k�ttbullesm�rg�s.txt

Har man många filer blir det snabbt tröttsamt att ändra filnamnen manuellt. Som tur är så finns det ett verktyg som heter convmv som automatiserar namnbytet.

För att byta teckenkodning från ISO-8859-1 till UTF-8 på alla filer i en katalog så kan man först göra en provkörning via kommandot

convmv -f iso-8859-1 -t utf8 *

För köttbullesmörgåsen ovan blir resultatet av provkörningen

Starting a dry run without changes...
mv "./mitt_�lsklingsrecept_p�_k�ttbullesm�rg�s.txt"     "./mitt_älsklingsrecept_på_köttbullesmörgås.txt"
No changes to your files done. Use --notest to finally rename the files.

Programmet genererar då en lista med alla mv-kommandon som kan köras för att byta namn på filerna. Om allting ser bra ut så lägger man till flaggan --notest för att utföra namnbytet.

$ convmv -f iso-8859-1 -t utf8 * --notest
mv "./mitt_�lsklingsrecept_p�_k�ttbullesm�rg�s.txt"     "./mitt_älsklingsrecept_på_köttbullesmörgås.txt"
Ready!

Filnamnen är nu ändrade till korrekt teckenkodning.

Referenser

  1. http://www.faqforge.com/linux/convert-the-charset-of-file-names-from-iso-8859-15-to-utf8/

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s