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.