Otu esi atụgharị faịlụ na ntinye koodu UTF-8 na Linux


N'ime ntuziaka a, anyị ga-akọwa ihe ngbanwe agwa ma kpuchie ihe atụ ole na ole nke ịtụgharị faịlụ site na otu agwa na-edobe ọzọ site na iji ngwa ahịrị iwu. N'ikpeazụ, anyị ga-eleba anya ka esi gbanwee ọtụtụ faịlụ site na njirimara agwa ọ bụla (charset) ka ọ bụrụ UTF-8 na-edobe na Linux.

Dịka ị nwere ike buru n'uche ugbua, kọmpụta anaghị aghọta ma ọ bụ chekwaa mkpụrụedemede, ọnụọgụ ma ọ bụ ihe ọ bụla ọzọ anyị dịka mmadụ nwere ike ịhụ ma ewezuga ibe n'ibe. Obere nwere naanị ụkpụrụ abụọ enwere ike, ya bụ 0 ma ọ bụ 1, ezi ma ọ bụ ụgha, > ee ma ọ bụ ee e. Ihe ọ bụla ọzọ dị ka mkpụrụedemede, ọnụọgụgụ, onyonyo ga-anọchirịrị na ibe n'ibe ka kọmputa wee hazie ya.

N'okwu dị mfe, ngbanwe agwa bụ ụzọ isi mee ka kọmpụta mara otu esi akọwa mkpụrụ efu na nke ahụ ka ọ bụrụ mkpụrụedemede n'ezie, ebe ọnụọgụ nọmba nọchiri anya agwa. Mgbe anyị na-apịnye ederede n'ime faịlụ, a na-esi n'ụdị mkpụrụedemede dị iche iche sie mkpụrụokwu na ahịrịokwu ndị anyị depụtara, a na-ahazikwa mkpụrụedemede ka ha bụrụ charset.

Enwere atụmatụ nzuzo dị iche iche dị ka ASCII, ANSI, Unicode na ndị ọzọ. N'okpuru bụ ọmụmaatụ nke koodu ntinye ASCII.

Character  bits
A               01000001
B               01000010

Na Linux, a na-eji ngwá ọrụ ahịrị iwu iconv iji tụgharịa ederede site n'otu ụdị ngbanwe gaa na nke ọzọ.

Ị nwere ike ịlele ngbanwe nke faịlụ site na iji iwu faịlụ, site na iji -i ma ọ bụ --mime ọkọlọtọ nke na-enyere aka ibipụta ụdị mime dị ka ọ dị na atụ n'okpuru:

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

Okwu syntax maka iji iconv bụ nke a:

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

Ebe -f ma ọ bụ --from-koodu pụtara ntinye ntinye na -t ma ọ bụ --na-encoding ezipụta. ntinye koodu mmepụta.

Ka ịdepụta usoro mkpụrụedemede niile amaara ama, mee iwu n'okpuru:

$ iconv -l 

Tugharia faịlụ site na UTF-8 ka ọ bụrụ ASCII ngbanwe

Ọzọ, anyị ga-amụta otu esi agbanwe site n'otu atụmatụ ngbanwe gaa na nke ọzọ. Iwu dị n'okpuru na-atụgharị site na ISO-8859-1 gaa na ntinye koodu UTF-8.

Tụlee otu faịlụ aha ya bụ input.file nke nwere mkpụrụedemede:

� � � �

Ka anyị bido site na ịlele ngbanwe nke mkpụrụedemede dị na faịlụ ahụ wee lelee ọdịnaya nke faịlụ ahụ. Na nso nso, anyị nwere ike ịtụgharị mkpụrụedemede niile ka ọ bụrụ koodu ASCII.

Mgbe ịmechara iwu iconv, anyị na-elele ọdịnaya nke faịlụ mmepụta yana ntinye koodu ọhụrụ nke mkpụrụedemede dị n'okpuru.

$ 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 

Cheta na: Ọ bụrụ na agbakwunyere eriri //IGNORE na ntinye koodu, mkpụrụedemede enweghị ike ịtụgharị yana mperi ga-egosipụta mgbe ngbanwechara.

Ọzọ, na-eche na agbakwunyere eriri //TRANSLIT na ntinye koodu dị ka ọmụmaatụ n'elu (ASCII//TRANSLIT), mkpụrụedemede ndị a na-atụgharị na-atụgharị ka ọ dị mkpa ma ọ bụrụ na ọ ga-ekwe omume. Nke na-egosi na ọ bụrụ na enweghị ike ịnọchite anya agwa n'ime njirimara ebumnuche, enwere ike iji otu mkpụrụedemede ma ọ bụ karịa yiri ya.

N'ihi ya, agwa ọ bụla nke enweghị ike ịtụgharị asụsụ na ọ bụghị na ntọala ebumnuche ka a ga-eji akara ajụjụ (?) n'ime mmepụta dochie ya.

Tụgharịa ọtụtụ faịlụ ka ọ bụrụ UTF-8 ngbanwe

Na-alaghachi na isi isiokwu anyị, iji gbanwee ọtụtụ faịlụ ma ọ bụ niile dị na ndekọ gaa na ntinye koodu UTF-8, ị nwere ike dee obere edemede shei a na-akpọ encoding.sh dị ka ndị a:

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

Chekwaa faịlụ ahụ, wee mee ka edemede ahụ rụọ ọrụ. Gbaa ya na ndekọ ebe faịlụ gị (*.txt) dị.

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

Ihe dị mkpa: Ị nwekwara ike iji edemede a maka ntụgharị n'ozuzu nke ọtụtụ faịlụ site na nke e nyere ngbanwe gaa na nke ọzọ, jiri naanị ụkpụrụ FROM_ENCODING na TO_ENCODING agbanwe, ọ bụghị na-echefu aha faịlụ mmepụta \& #36 {file%.txt}.utf8.converted\.

Maka ozi ndị ọzọ, lee anya na ibe iconv man.

$ man iconv

N'ịchịkọta ntuziaka a, ịghọta ngbanwe na otu esi agbanwe site n'otu atụmatụ ngbanwe mkpụrụedemede gaa na nke ọzọ bụ ihe ọmụma dị mkpa maka ndị ọrụ kọmputa ọ bụla karịa maka ndị mmemme ma a bịa n'ihe gbasara ederede.

N'ikpeazụ, ị nwere ike ịkpọtụrụ anyị site na iji ngalaba nkọwa n'okpuru maka ajụjụ ma ọ bụ nzaghachi ọ bụla.