Konverter tekstfiler til UTF-8: Effektive metoder med Perl, iconv og Python

Hvordan kan en masse tekstfiler konverteres fra en given tegnsætning til UTF-8 ved hjælp af kommandolinjeværktøjer eller en-liners i Perl (eller et andet sprog)?

At konvertere en masse tekstfiler fra en given tegnsætning til UTF-8 kan gøres ved hjælp af kommandolinjeværktøjer som Perl, iconv eller Python, hvilket sikrer korrekt visning og behandling af tekstdata.

Sådan konverteres en masse tekstfiler fra en given tegnsætning til UTF-8 ved hjælp af kommandolinjeværktøjer eller en-liners i Perl

At konvertere en masse tekstfiler fra en given tegnsætning til UTF-8 kan være en nødvendig opgave for at sikre korrekt visning og behandling af tekstdata. Her er nogle metoder til at gøre dette ved hjælp af kommandolinjeværktøjer og en-liners i Perl:

Brug af Perl

Perl er et kraftfuldt sprog til tekstbehandling og kan nemt bruges til at konvertere tegnsætning. Her er en en-liner til at konvertere filer:

perl -i.bak -pe 'use Encode; $_ = encode("UTF-8", decode("ISO-8859-1", $_))' *.txt
  • -i.bak: Opretter en backup af den originale fil med udvidelsen .bak.
  • -pe: Udfører koden på hver linje af inputfilen.
  • use Encode;: Importerer Encode-modulet til tegnsætningskonvertering.
  • encode("UTF-8", decode("ISO-8859-1", $_)): Dekoder linjen fra ISO-8859-1 og koder den derefter til UTF-8.
  • *.txt: Matcher alle tekstfiler i den aktuelle mappe.

Brug af iconv

iconv er et kommandolinjeværktøj, der kan bruges til at konvertere tegnsætning. Her er et eksempel på, hvordan du kan bruge det:

for file in *.txt; do iconv -f ISO-8859-1 -t UTF-8 "$file" -o "${file%.txt}_utf8.txt"; done
  • for file in *.txt; do ... done: En loop, der går igennem alle tekstfiler i den aktuelle mappe.
  • iconv -f ISO-8859-1 -t UTF-8 "$file" -o "${file%.txt}_utf8.txt": Konverterer filen fra ISO-8859-1 til UTF-8 og gemmer den som en ny fil med "_utf8" tilføjet til filnavnet.

Brug af Python

Python kan også bruges til at konvertere tegnsætning. Her er et eksempel på en en-liner i Python:

python -c "import os; [open(f'{file}_utf8.txt', 'w', encoding='utf-8').write(open(file, encoding='iso-8859-1').read()) for file in os.listdir('.') if file.endswith('.txt')]"
  • import os: Importerer os-modulet til filhåndtering.
  • [open(f'{file}_utf8.txt', 'w', encoding='utf-8').write(open(file, encoding='iso-8859-1').read()) for file in os.listdir('.') if file.endswith('.txt')]: Læser hver tekstfil i den aktuelle mappe med ISO-8859-1 tegnsætning og skriver den til en ny fil med UTF-8 tegnsætning.

Disse metoder giver dig fleksibilitet til at vælge det værktøj, der passer bedst til dine behov og dit miljø.