GNU/Linux >> Znalost Linux >  >> Linux

Jak převést soubory do kódování UTF-8 v Linuxu

V této příručce popíšeme kódování znaků a pokryjeme několik příkladů převodu souborů z jednoho kódování znaků na jiné pomocí nástroje příkazového řádku. Nakonec se podíváme na to, jak převést několik souborů z libovolné znakové sady (charset ) na UTF-8 kódování v Linuxu.

Jak už možná máte na mysli, počítač nerozumí a neukládá písmena, čísla ani nic jiného, ​​co my jako lidé dokážeme vnímat kromě bitů. Bit má pouze dvě možné hodnoty, a to buď 0 nebo 1 , true nebo false , yes nebo no . Všechny ostatní věci, jako jsou písmena, čísla, obrázky, musí být reprezentovány v bitech, aby je počítač zpracoval.

Jednoduše řečeno, kódování znaků je způsob, jak informovat počítač, jak interpretovat hrubé nuly a jedničky na skutečné znaky, kde znak je reprezentován množinou čísel. Když zadáváme text do souboru, slova a věty, které tvoříme, se skládají z různých znaků a znaky jsou uspořádány do znakové sady .

Existují různá schémata kódování, jako je ASCII , ANSI , Unicode mezi ostatními. Níže je uveden příklad ASCII kódování.

Character  bits
A               01000001
B               01000010

V systému Linux je ikona nástroj příkazového řádku se používá k převodu textu z jedné formy kódování do jiné.

Kódování souboru můžete zkontrolovat pomocí souboru pomocí -i nebo --mime příznak, který umožňuje tisk řetězce typu mime jako v příkladech níže:

$ file -i Car.java
$ file -i CarDriver.java

Syntaxe pro použití iconv je následující:

$ iconv option
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile 

Kde -f nebo --from-code znamená kódování vstupu a -t nebo --to-encoding určuje kódování výstupu.

Chcete-li zobrazit seznam všech známých kódovaných znakových sad, spusťte níže uvedený příkaz:

$ iconv -l 

Převod souborů z kódování UTF-8 na kódování ASCII

Dále se naučíme, jak převést z jednoho schématu kódování na jiné. Níže uvedený příkaz převádí z ISO-8859-1 na UTF-8 kódování.

Zvažte soubor s názvem input.file který obsahuje znaky:

� � � �

Začněme kontrolou kódování znaků v souboru a poté si prohlédněte obsah souboru. Úzce můžeme převést všechny znaky do ASCII kódování.

Po spuštění ikony zkontrolujeme obsah výstupního souboru a nové kódování znaků, jak je uvedeno níže.

$ file -i input.file
$ cat input.file 
$ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file
$ cat out.file 
$ file -i out.file 

Poznámka :V případě řetězce //IGNORE se přidá do kódování, znaky, které nelze převést, a po převodu se zobrazí chyba.

Opět předpokládejme řetězec //TRANSLIT se přidá do kódování jako ve výše uvedeném příkladu (ASCII//TRANSLIT ), převáděné znaky se přepisují podle potřeby a pokud je to možné. Což znamená, že v případě, že znak nemůže být zastoupen v cílové znakové sadě, lze jej aproximovat pomocí jednoho nebo více podobně vypadajících znaků.

V důsledku toho je každý znak, který nelze přepsat a není v cílové znakové sadě, nahrazen otazníkem (?) ve výstupu.

Převést více souborů do kódování UTF-8

Vraťme se k našemu hlavnímu tématu, chcete-li převést více nebo všechny soubory v adresáři do kódování UTF-8, můžete napsat malý skript shell s názvem encoding.sh takto:

#!/bin/bash
#enter input encoding here
FROM_ENCODING="value_here"
#output encoding(UTF-8)
TO_ENCODING="UTF-8"
#convert
CONVERT=" iconv  -f   $FROM_ENCODING  -t   $TO_ENCODING"
#loop to convert multiple files 
for  file  in  *.txt; do
     $CONVERT   "$file"   -o  "${file%.txt}.utf8.converted"
done
exit 0

Uložte soubor a poté vytvořte spustitelný skript. Spusťte jej z adresáře, kde jsou vaše soubory (*.txt ) se nacházejí.

$ chmod  +x  encoding.sh
$ ./encoding.sh

Důležité :Tento skript můžete také použít pro obecný převod více souborů z jednoho daného kódování do jiného, ​​jednoduše si pohrajte s hodnotami FROM_ENCODING a TO_ENCODING proměnnou, nezapomeňte na název výstupního souboru "${file%.txt}.utf8.converted" .

Další informace naleznete pod ikonou manuálová stránka.

$ man iconv

Abychom shrnuli tuto příručku, pochopení kódování a převodu z jednoho schématu kódování znaků na jiné je nezbytnou znalostí pro každého uživatele počítače a tím spíše pro programátory, pokud jde o práci s textem.

A konečně, můžete nás kontaktovat pomocí sekce komentářů níže pro jakékoli dotazy nebo zpětnou vazbu.


Linux
  1. Jak zobrazit nebo změnit ACL v souborech Linux

  2. Jak extrahovat soubory .gz a .tar.gz v Linuxu

  3. Jak používat Netcat k přenosu souborů v systému Linux

  1. Jak přesunout soubor v Linuxu

  2. Jak najít soubory v Linuxu

  3. Jak přejmenovat soubor v Linuxu?

  1. Jak zobrazit skryté soubory v Linuxu

  2. Jak kopírovat soubory a adresáře v Linuxu

  3. Jak vytvořit soubor v Linuxu