Jinsi ya Kubadilisha Faili kuwa UTF-8 Encoding katika Linux


Katika mwongozo huu, tutaelezea usimbaji wa mhusika na kufunika mifano michache ya kubadilisha faili kutoka kwa usimbaji wa herufi moja hadi nyingine kwa kutumia zana ya mstari wa amri. Kisha hatimaye, tutaangalia jinsi ya kubadilisha faili kadhaa kutoka kwa seti yoyote ya tabia (charset) hadi UTF-8 encoding katika Linux.

Kama unavyoweza kuwa unakumbuka tayari, kompyuta haielewi au kuhifadhi herufi, nambari au kitu kingine chochote ambacho sisi kama wanadamu tunaweza kutambua isipokuwa biti. Kidogo kina thamani mbili tu zinazowezekana, ambazo ni 0 au 1, kweli au false, >ndio au hapana. Kila kitu kingine kama vile herufi, nambari, picha lazima ziwakilishwe kwa vipande ili kompyuta ichakate.

Kwa maneno rahisi, usimbaji wa herufi ni njia ya kufahamisha kompyuta jinsi ya kutafsiri sufuri ghafi na zile katika herufi halisi, ambapo mhusika huwakilishwa na seti ya nambari. Tunapoandika maandishi katika faili, maneno na sentensi tunazounda hutayarishwa kutoka kwa herufi tofauti, na herufi hupangwa katika charset.

Kuna miradi mbali mbali ya usimbuaji huko nje kama vile ASCII, ANSI, Unicode kati ya zingine. Chini ni mfano wa usimbaji wa ASCII.

Character  bits
A               01000001
B               01000010

Katika Linux, zana ya mstari wa amri ya iconv hutumiwa kubadilisha maandishi kutoka kwa aina moja ya usimbaji hadi nyingine.

Unaweza kuangalia usimbaji wa faili kwa kutumia amri ya faili, kwa kutumia -i au --mime bendera ambayo huwezesha uchapishaji wa mfuatano wa aina ya mime kama katika mifano iliyo hapa chini:

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

Syntax ya kutumia iconv ni kama ifuatavyo:

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

Ambapo -f au --from-code inamaanisha usimbaji wa ingizo na -t au --to-encoding inabainisha usimbaji wa pato.

Ili kuorodhesha seti zote za herufi zinazojulikana, endesha amri hapa chini:

$ iconv -l 

Badilisha Faili kutoka UTF-8 hadi Usimbaji wa ASCII

Ifuatayo, tutajifunza jinsi ya kubadilisha kutoka kwa mpango mmoja wa encoding hadi mwingine. Amri iliyo hapa chini inabadilisha kutoka ISO-8859-1 hadi usimbaji wa UTF-8.

Zingatia faili inayoitwa input.file ambayo ina vibambo:

� � � �

Wacha tuanze kwa kuangalia usimbuaji wa wahusika kwenye faili na kisha tutazame yaliyomo kwenye faili. Kwa karibu, tunaweza kubadilisha herufi zote kuwa usimbaji wa ASCII.

Baada ya kutekeleza amri ya iconv, kisha tunaangalia yaliyomo kwenye faili ya pato na usimbuaji mpya wa wahusika kama ilivyo hapo chini.

$ 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 

Kumbuka: Iwapo mfuatano //IGNORE utaongezwa kwenye usimbaji, herufi ambazo haziwezi kubadilishwa na hitilafu itaonyeshwa baada ya kushawishika.

Tena, ikizingatiwa kuwa mfuatano //TRANSLIT umeongezwa kwa usimbaji kama katika mfano ulio hapo juu (ASCII//TRANSLIT), herufi zinazobadilishwa hutafsiriwa inavyohitajika na ikiwezekana. Ambayo ina maana katika tukio ambalo mhusika hawezi kuwakilishwa katika seti ya herufi lengwa, inaweza kukadiriwa kupitia herufi moja au zaidi zinazofanana.

Kwa hivyo, herufi yoyote ambayo haiwezi kufasiriwa na haiko katika mpangilio wa herufi lengwa inabadilishwa na alama ya swali (?) katika towe.

Badilisha Faili Nyingi ziwe Usimbaji wa UTF-8

Kurudi kwenye mada yetu kuu, kubadilisha faili nyingi au zote kwenye saraka kuwa usimbaji wa UTF-8, unaweza kuandika hati ndogo ya ganda inayoitwa encoding.sh kama ifuatavyo:

#!/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

Hifadhi faili, kisha ufanye hati itekelezwe. Iendeshe kutoka kwenye saraka ambapo faili zako (*.txt) ziko.

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

Muhimu: Unaweza pia kutumia hati hii kwa ubadilishaji wa jumla wa faili nyingi kutoka kwa usimbaji mmoja hadi mwingine, kucheza tu na thamani za FROM_ENCODING na TO_ENCODING kutofautiana, si kusahau jina la faili towe \$ {file%.txt}.utf8.converted\.

Kwa habari zaidi, angalia ukurasa wa mtu wa iconv.

$ man iconv

Kwa muhtasari wa mwongozo huu, kuelewa usimbaji na jinsi ya kubadilisha kutoka kwa mpango wa usimbaji wa herufi hadi nyingine ni maarifa muhimu kwa kila mtumiaji wa kompyuta zaidi na kwa watengeneza programu linapokuja suala la kushughulika na maandishi.

Hatimaye, unaweza kuwasiliana nasi kwa kutumia sehemu ya maoni hapa chini kwa maswali au maoni yoyote.