Kif Tikkonverti Fajls għal Kodifikazzjoni UTF-8 fil-Linux
F'din il-gwida, se niddeskrivu liema kodifikazzjoni tal-karattri u nkopru ftit eżempji ta 'konverżjoni ta' fajls minn kodifikazzjoni ta 'karattri għal oħra bl-użu ta' għodda tal-linja tal-kmand. Imbagħad fl-aħħarnett, se nħarsu lejn kif tikkonverti diversi fajls minn kwalunkwe sett ta 'karattri (charset) għal kodifikazzjoni UTF-8 fil-Linux.
Kif forsi diġà għandek f'moħħok, kompjuter ma jifhimx jew jaħżen ittri, numri jew kull ħaġa oħra li aħna bħala bnedmin nistgħu nipperċepixxu ħlief bits. Bit għandu biss żewġ valuri possibbli, jiġifieri jew 0
jew 1
, veru
jew falz
, >iva
jew le
. Kull ħaġa oħra bħal ittri, numri, immaġini għandha tkun rappreżentata f'bits biex kompjuter jipproċessa.
F'termini sempliċi, il-kodifikazzjoni tal-karattri hija mod kif kompjuter jinforma kif jinterpreta żero u dawk mhux ipproċessati f'karattri attwali, fejn karattru huwa rappreżentat b'sett ta' numri. Meta nittajpja test f'fajl, il-kliem u s-sentenzi li niffurmaw huma msajra minn karattri differenti, u l-karattri jiġu organizzati f'charset.
Hemm diversi skemi ta 'kodifikazzjoni hemmhekk bħal ASCII, ANSI, Unicode fost oħrajn. Hawn taħt hemm eżempju ta 'kodifikazzjoni ASCII.
Character bits A 01000001 B 01000010
Fil-Linux, l-għodda tal-linja tal-kmand iconv tintuża biex tikkonverti test minn forma waħda ta 'kodifikazzjoni għal oħra.
Tista' tiċċekkja l-kodifikazzjoni ta' fajl billi tuża l-kmand tal-fajl, billi tuża l-marka -i
jew --mime
li tippermetti l-istampar ta' string tat-tip mime bħal fl-eżempji hawn taħt:
$ file -i Car.java $ file -i CarDriver.java
Is-sintassi għall-użu ta' iconv hija kif ġej:
$ iconv option $ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile
Fejn -f
jew --from-code
tfisser kodifikazzjoni tad-dħul u -t
jew --to-encoding
jispeċifika kodifikazzjoni tal-output.
Biex telenka s-settijiet ta’ karattri kodifikati magħrufa kollha, mexxi l-kmand hawn taħt:
$ iconv -l
Ikkonverti Fajls minn UTF-8 għal Kodifikazzjoni ASCII
Sussegwentement, se nitgħallmu kif tikkonverti minn skema ta 'kodifikazzjoni waħda għal oħra. Il-kmand hawn taħt jikkonverti minn ISO-8859-1 għal kodifikazzjoni UTF-8.
Ikkunsidra fajl bl-isem input.file
li fih il-karattri:
� � � �
Ejja nibdew billi niċċekkjaw il-kodifikazzjoni tal-karattri fil-fajl u mbagħad ara l-kontenut tal-fajl. Mill-qrib, nistgħu nikkonverti l-karattri kollha għal kodifikazzjoni ASCII.
Wara li tmexxi l-kmand iconv, aħna mbagħad niċċekkjaw il-kontenut tal-fajl tal-output u l-kodifikazzjoni l-ġdida tal-karattri kif hawn taħt.
$ 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
Nota: F'każ li s-sekwenza //IGNORE
tiżdied mal-kodifikazzjoni, karattri li ma jistgħux jiġu kkonvertiti u jiġi muri żball wara l-konverżjoni.
Għal darb'oħra, jekk wieħed jassumi li l-sekwenza //TRANSLIT
hija miżjuda mal-kodifikazzjoni bħal fl-eżempju ta' hawn fuq (ASCII//TRANSLIT), il-karattri li qed jiġu kkonvertiti jiġu translitterati kif meħtieġ u jekk possibbli. Li jimplika fil-każ li karattru ma jistax jiġi rappreżentat fis-sett ta 'karattri fil-mira, jista' jiġi approssimat permezz ta 'karattri wieħed jew aktar li jidhru simili.
Konsegwentement, kwalunkwe karattru li ma jistax jiġi translitterat u mhux fis-sett ta’ karattri fil-mira jiġi sostitwit b’marka ta’ mistoqsija (?)
fl-output.
Ikkonverti Fajls Multipli għal Kodifikazzjoni UTF-8
Niġu lura għas-suġġett ewlieni tagħna, biex tikkonverti l-fajls multipli jew kollha f'direttorju għal kodifikazzjoni UTF-8, tista 'tikteb script shell żgħir imsejjaħ encoding.sh kif ġej:
#!/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
Issejvja l-fajl, imbagħad agħmel l-iskrittura eżekutibbli. Mexxiha mid-direttorju fejn jinsabu l-fajls tiegħek (*.txt
).
$ chmod +x encoding.sh $ ./encoding.sh
Importanti: Tista' wkoll tuża din l-iskrittura għall-konverżjoni ġenerali ta' fajls multipli minn kodifikazzjoni partikolari għal oħra, sempliċement tilgħab mal-valuri tal-varjabbli FROM_ENCODING
u TO_ENCODING
, mhux tinsa l-isem tal-fajl tal-output \$ {file%.txt}.utf8.converted\
.
Għal aktar informazzjoni, ara l-paġna man iconv.
$ man iconv
Fil-qosor din il-gwida, il-fehim tal-kodifikazzjoni u kif tikkonverti minn skema ta 'kodifikazzjoni ta' karattri għal oħra hija għarfien meħtieġ għal kull utent tal-kompjuter aktar u aktar għal programmaturi meta jiġu biex jittrattaw it-test.
Fl-aħħar nett, tista' tagħmel kuntatt magħna billi tuża t-taqsima tal-kummenti hawn taħt għal kwalunkwe mistoqsija jew feedback.