Hvernig á að umbreyta skrám í UTF-8 kóðun í Linux


Í þessari handbók munum við lýsa hvaða stafakóðun og fjalla um nokkur dæmi um að breyta skrám úr einni stafakóðun í aðra með því að nota skipanalínuverkfæri. Síðan að lokum munum við skoða hvernig á að umbreyta nokkrum skrám úr hvaða stafasetti sem er (stafsetur) í UTF-8 kóðun í Linux.

Eins og þú hefur líklega í huga þegar, þá skilur tölva ekki eða geymir bókstafi, tölustafi eða neitt annað sem við sem menn getum skynjað nema bita. Biti hefur aðeins tvö möguleg gildi, það er annað hvort 0 eða 1, true eða false, >já eða nei. Allt annað eins og bókstafir, tölur, myndir verða að vera táknaðar í bitum til að tölva geti unnið úr.

Í einföldu máli, stafakóðun er leið til að upplýsa tölvu um hvernig eigi að túlka hrá núll og eitt í raunverulega stafi, þar sem stafur er táknaður með tölusettum. Þegar við skrifum texta í skrá eru orðin og setningarnar sem við myndum matreidd úr mismunandi stöfum og stafir eru skipulagðir í stafasett.

Það eru ýmis kóðunarkerfi þarna úti eins og ASCII, ANSI, Unicode meðal annarra. Hér að neðan er dæmi um ASCII kóðun.

Character  bits
A               01000001
B               01000010

Í Linux er iconv skipanalínutólið notað til að umbreyta texta úr einni kóðun í aðra.

Þú getur athugað kóðun skráar með því að nota skráarskipunina með því að nota -i eða --mime fánann sem gerir kleift að prenta mime tegund streng eins og í dæmunum hér að neðan:

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

Setningafræðin fyrir notkun iconv er sem hér segir:

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

Þar sem -f eða --from-code þýðir inntakskóðun og -t eða --to-encoding tilgreinir úttakskóðun.

Til að skrá öll þekkt kóðuð stafasett skaltu keyra skipunina hér að neðan:

$ iconv -l 

Umbreyttu skrám úr UTF-8 í ASCII kóðun

Næst munum við læra hvernig á að breyta úr einu kóðunkerfi í annað. Skipunin hér að neðan breytir úr ISO-8859-1 í UTF-8 kóðun.

Íhugaðu skrá sem heitir input.file sem inniheldur stafina:

� � � �

Við skulum byrja á því að athuga kóðun stafanna í skránni og skoða síðan innihald skráarinnar. Náið, við getum breytt öllum stöfunum í ASCII kóðun.

Eftir að hafa keyrt iconv skipunina athugum við innihald úttaksskrárinnar og nýju kóðun stöfanna eins og hér að neðan.

$ 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 

Athugið: Ef strengnum //IGNORE er bætt við í kóðun, þá birtist stöfum sem ekki er hægt að breyta og villa birtist eftir umbreytingu.

Aftur, að því gefnu að strengnum //TRANSLIT sé bætt við kóðun eins og í dæminu hér að ofan (ASCII//TRANSLIT), þá eru stafir sem verið er að breyta umritaðir eftir þörfum og ef mögulegt er. Sem gefur til kynna að ef ekki er hægt að tákna persónu í markstafasettinu, þá er hægt að nálgast hana með einni eða fleiri svipuðum persónum.

Þar af leiðandi er hverjum staf sem ekki er hægt að umrita og er ekki í markstafasetti skipt út fyrir spurningarmerki (?) í úttakinu.

Umbreyttu mörgum skrám í UTF-8 kóðun

Komum aftur að aðalefninu okkar, til að umbreyta mörgum eða öllum skrám í möppu í UTF-8 kóðun, geturðu skrifað lítið skeljaforskrift sem kallast encoding.sh á eftirfarandi hátt:

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

Vistaðu skrána og gerðu skriftuna keyranlega. Keyrðu það úr möppunni þar sem skrárnar þínar (*.txt) eru staðsettar.

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

Mikilvægt: Þú getur líka notað þetta handrit til almennrar umbreytingar á mörgum skrám úr einni tiltekinni kóðun í aðra, einfaldlega leika þér með gildin á FROM_ENCODING og TO_ENCODING breytunni, ekki gleymir nafni úttaksskrárinnar \$ {file%.txt}.utf8.converted\.

Fyrir frekari upplýsingar, skoðaðu iconv man síðuna.

$ man iconv

Til að draga saman þessa handbók, skilningur á kóðun og hvernig á að breyta úr einni stafakóðun í annað er nauðsynleg þekking fyrir hvern tölvunotanda meira fyrir forritara þegar kemur að því að takast á við texta.

Að lokum geturðu haft samband við okkur með því að nota athugasemdareitinn hér að neðan fyrir allar spurningar eða athugasemdir.