Giunsa ang Pag-convert sa mga File sa UTF-8 Encoding sa Linux
Niini nga giya, atong ihulagway kung unsa ang pag-encode sa karakter ug pagtabon sa pipila ka mga pananglitan sa pag-convert sa mga file gikan sa usa ka karakter nga pag-encode ngadto sa lain gamit ang command line tool. Unya sa katapusan, atong tan-awon kung giunsa ang pag-convert sa daghang mga file gikan sa bisan unsang set sa karakter (charset) ngadto sa pag-encode sa UTF-8 sa Linux.
Sama sa tingali naa na sa imong hunahuna, ang usa ka kompyuter dili makasabut o magtipig sa mga letra, numero o bisan unsang butang nga mahimo naton mahibal-an ingon mga tawo gawas sa mga piraso. Ang usa ka gamay adunay duha lamang ka posible nga mga bili, kana mao ang usa ka 0
o 1
, true
o false
, oo
o dili
. Ang tanang butang sama sa mga letra, numero, mga hulagway kinahanglang irepresentar sa mga piraso aron maproseso sa kompyuter.
Sa yano nga mga termino, ang pag-encode sa karakter usa ka paagi sa pagpahibalo sa usa ka kompyuter kung giunsa paghubad ang mga hilaw nga sero ug ang mga sa aktuwal nga mga karakter, diin ang usa ka karakter girepresentar sa hugpong sa mga numero. Kung nag-type kita og teksto sa usa ka file, ang mga pulong ug mga sentence nga atong giporma giluto gikan sa lain-laing mga karakter, ug ang mga karakter giorganisar ngadto sa usa ka charset.
Adunay lainlaing mga laraw sa pag-encode sama sa ASCII, ANSI, Unicode ug uban pa. Sa ubos usa ka pananglitan sa pag-encode sa ASCII.
Character bits A 01000001 B 01000010
Sa Linux, ang iconv command line tool gigamit sa pag-convert sa teksto gikan sa usa ka porma sa pag-encode ngadto sa lain.
Mahimo nimong susihon ang pag-encode sa usa ka file gamit ang file command, pinaagi sa paggamit sa -i
o --mime
nga bandila nga makapahimo sa pag-imprinta sa mime type string sama sa mga pananglitan sa ubos:
$ file -i Car.java $ file -i CarDriver.java
Ang syntax sa paggamit sa iconv mao ang mosunod:
$ iconv option $ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile
Diin ang -f
o --from-code
nagpasabot sa input encoding ug -t
o --to-encoding
nagtino pag-encode sa output.
Aron ilista ang tanan nga nahibal-an nga mga set sa karakter nga adunay code, padagana ang mando sa ubos:
$ iconv -l
I-convert ang mga File gikan sa UTF-8 ngadto sa ASCII Encoding
Sunod, makakat-on kita kung unsaon pag-convert gikan sa usa ka encoding scheme ngadto sa lain. Ang sugo sa ubos nag-convert gikan sa ISO-8859-1 ngadto sa UTF-8 encoding.
Hunahunaa ang usa ka file nga ginganlag input.file
nga adunay mga karakter:
� � � �
Magsugod kita pinaagi sa pagsusi sa pag-encode sa mga karakter sa file ug dayon tan-awon ang mga sulud sa file. Duol, mahimo natong i-convert ang tanang karakter ngadto sa ASCII encoding.
Pagkahuman sa pagdagan sa iconv nga mando, among susihon ang sulud sa output file ug ang bag-ong pag-encode sa mga karakter sama sa ubos.
$ 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
Mubo nga sulat: Kung ang string //IGNORE
idugang sa pag-encode, ang mga karakter nga dili makabig ug usa ka sayup ang gipakita pagkahuman sa pagkakabig.
Sa makausa pa, kung ang string //TRANSLIT
gidugang sa pag-encode sama sa pananglitan sa ibabaw (ASCII//TRANSLIT), ang mga karakter nga gi-convert gi-transliterate kung gikinahanglan ug kung mahimo. Nga nagpasabot sa panghitabo nga ang usa ka karakter dili marepresentar sa target nga set sa karakter, kini mahimong mabanabana pinaagi sa usa o daghan pang susama nga hitsura nga mga karakter.
Tungod niini, ang bisan unsang karakter nga dili ma-transliterate ug wala sa target nga set sa karakter gipulihan sa marka sa pangutana (?)
sa output.
I-convert ang Daghang mga File ngadto sa UTF-8 Encoding
Pagbalik sa among panguna nga hilisgutan, aron mabag-o ang daghang o tanan nga mga file sa usa ka direktoryo sa pag-encode sa UTF-8, mahimo kang magsulat og gamay nga script sa shell nga gitawag og encoding.sh sama sa mosunod:
#!/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
I-save ang file, dayon himoa nga executable ang script. Dagan kini gikan sa direktoryo diin nahimutang ang imong mga file (*.txt
).
$ chmod +x encoding.sh $ ./encoding.sh
Importante: Mahimo nimo usab nga gamiton kini nga script alang sa kinatibuk-ang pagkakabig sa daghang mga file gikan sa usa ka gihatag nga pag-encode ngadto sa lain, pagdula lang sa mga kantidad sa FROM_ENCODING
ug TO_ENCODING
variable, dili nakalimtan ang ngalan sa output file \$ {file%.txt}.utf8.converted\
.
Para sa dugang nga impormasyon, tan-awa ang iconv man page.
$ man iconv
Sa pagsumada niini nga giya, ang pagsabut sa pag-encode ug kung unsaon pag-convert gikan sa usa ka character encoding scheme ngadto sa lain gikinahanglan nga kahibalo alang sa matag tiggamit sa kompyuter labi na alang sa mga programmer kon bahin sa pag-atubang sa teksto.
Sa katapusan, mahimo nimong makontak kami pinaagi sa paggamit sa seksyon sa komento sa ubos alang sa bisan unsang mga pangutana o feedback.