GNU/Linux >> Znalost Linux >  >> Linux

iconv libovolné kódování do UTF-8

Kompilace všech. Přejděte do adresáře, vytvořte dir2utf8.sh :

#!/bin/bash
# converting all files in a dir to utf8

for f in *
do
  if test -f $f then
    echo -e "\nConverting $f"
    CHARSET="$(file -bi "$f"|awk -F "=" '{print $2}')"
    if [ "$CHARSET" != utf-8 ]; then
      iconv -f "$CHARSET" -t utf8 "$f" -o "$f"
    fi
  else
    echo -e "\nSkipping $f - it's a regular file";
  fi
done

Možná hledáte enca :

Enca je extrémně naivní analyzátor znakové sady. Detekuje znakovou sadu a kódování textových souborů a dokáže je také převést na jiná kódování pomocí vestavěného konvertoru nebo externích knihoven a nástrojů jako libiconv, librecode nebo cstocs.

V současné době podporuje běloruštinu, bulharštinu, chorvatštinu, češtinu, estonštinu, maďarštinu, lotyštinu, litevštinu, polštinu, ruštinu, slovenštinu, slovinštinu, ukrajinštinu, čínštinu a některá vícebajtová kódování nezávisle na jazyku.

Všimněte si, že obecně je autodetekce aktuálního kódování obtížný proces (stejná sekvence bajtů může být správným textem ve více kódováních). enca používá heuristiku založenou na jazyku, který mu přikážete detekovat (k omezení počtu kódování). Můžete použít enconv převést textové soubory do jediného kódování.


Co potřebujete, můžete získat pomocí standardního souboru gnu utils a awk. Příklad:

file -bi .xsession-errors mi dává:"text/plain; charset=us-ascii"

takže file -bi .xsession-errors |awk -F "=" '{print $2}' dává mi "us-ascii"

Používám to ve skriptech, jako je to:

CHARSET="$(file -bi "$i"|awk -F "=" '{print $2}')"

if [ "$CHARSET" != utf-8 ]; then
  iconv -f "$CHARSET" -t utf8 "$i" -o outfile
fi

Linux
  1. Jak podmíněně překódovat do UTF-8?

  2. Jak převést textový soubor z Shift JIS na UTF-8 a zpět z terminálu

  3. Sudo vs root; nějaké skutečné rozdíly?

  1. Zaznamenat jakýkoli příkaz podobný `time`?

  2. Jak převést příkazy do libovolného terminálu?

  3. Co dělá CAP_NET_RAW?

  1. Okamžité texty – Získejte texty k jakékoli skladbě na Spotify

  2. Převod webových stránek z UTF-8 na ISO-8859-1 v linuxu

  3. Máte nějaké zkušenosti s Javou na Raspberry PI?