Linux-ൽ UTF-8 എൻകോഡിംഗിലേക്ക് ഫയലുകൾ എങ്ങനെ പരിവർത്തനം ചെയ്യാം


ഈ ഗൈഡിൽ, ഏത് പ്രതീക എൻകോഡിംഗ് ഞങ്ങൾ വിവരിക്കുകയും ഒരു കമാൻഡ് ലൈൻ ടൂൾ ഉപയോഗിച്ച് ഒരു പ്രതീക എൻകോഡിംഗിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ഫയലുകൾ പരിവർത്തനം ചെയ്യുന്നതിനുള്ള കുറച്ച് ഉദാഹരണങ്ങൾ ഉൾക്കൊള്ളുകയും ചെയ്യും. അവസാനമായി, ലിനക്സിലെ UTF-8 എൻകോഡിംഗിലേക്ക് ഏതെങ്കിലും പ്രതീക സെറ്റിൽ (ചാർജറ്റ്) നിന്ന് നിരവധി ഫയലുകൾ എങ്ങനെ പരിവർത്തനം ചെയ്യാമെന്ന് നോക്കാം.

നിങ്ങൾ ഇതിനകം മനസ്സിൽ കരുതിയിരിക്കാം, ഒരു കമ്പ്യൂട്ടറിന് അക്ഷരങ്ങളോ അക്കങ്ങളോ ബിറ്റുകൾ ഒഴികെ മനുഷ്യരായ നമുക്ക് മനസ്സിലാക്കാൻ കഴിയുന്ന മറ്റെന്തെങ്കിലും മനസ്സിലാക്കാനോ സംഭരിക്കാനോ കഴിയില്ല. ഒരു ബിറ്റിന് സാധ്യമായ രണ്ട് മൂല്യങ്ങൾ മാത്രമേ ഉള്ളൂ, അത് ഒരു 0 അല്ലെങ്കിൽ 1, true അല്ലെങ്കിൽ false, അതെ അല്ലെങ്കിൽ ഇല്ല. കമ്പ്യൂട്ടറിന് പ്രോസസ്സ് ചെയ്യുന്നതിന് അക്ഷരങ്ങൾ, അക്കങ്ങൾ, ചിത്രങ്ങൾ എന്നിങ്ങനെയുള്ള മറ്റെല്ലാ കാര്യങ്ങളും ബിറ്റുകളിൽ പ്രതിനിധീകരിക്കണം.

ലളിതമായി പറഞ്ഞാൽ, അസംസ്uകൃത പൂജ്യങ്ങളെയും ഒന്നിനെയും യഥാർത്ഥ പ്രതീകങ്ങളാക്കി എങ്ങനെ വ്യാഖ്യാനിക്കാമെന്ന് കമ്പ്യൂട്ടറിനെ അറിയിക്കുന്നതിനുള്ള ഒരു മാർഗമാണ് ക്യാരക്ടർ എൻകോഡിംഗ്, ഇവിടെ ഒരു പ്രതീകം ഒരു കൂട്ടം അക്കങ്ങളാൽ പ്രതിനിധീകരിക്കപ്പെടുന്നു. നമ്മൾ ഒരു ഫയലിൽ ടെക്സ്റ്റ് ടൈപ്പ് ചെയ്യുമ്പോൾ, നമ്മൾ രൂപപ്പെടുത്തുന്ന വാക്കുകളും വാക്യങ്ങളും വ്യത്യസ്ത പ്രതീകങ്ങളിൽ നിന്ന് വേവിച്ചെടുക്കുകയും പ്രതീകങ്ങൾ ഒരു ചാർസെറ്റായി ക്രമീകരിക്കുകയും ചെയ്യുന്നു.

ASCII, ANSI, Unicode തുടങ്ങിയ വിവിധ എൻകോഡിംഗ് സ്കീമുകൾ അവിടെയുണ്ട്. ASCII എൻകോഡിംഗിന്റെ ഒരു ഉദാഹരണം ചുവടെയുണ്ട്.

Character  bits
A               01000001
B               01000010

Linux-ൽ, iconv കമാൻഡ് ലൈൻ ടൂൾ ഒരു എൻകോഡിംഗിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ടെക്സ്റ്റ് പരിവർത്തനം ചെയ്യാൻ ഉപയോഗിക്കുന്നു.

നിങ്ങൾക്ക് ഫയൽ കമാൻഡ് ഉപയോഗിച്ച് ഒരു ഫയലിന്റെ എൻകോഡിംഗ് പരിശോധിക്കാം, -i അല്ലെങ്കിൽ --mime ഫ്ലാഗ് ഉപയോഗിച്ച് ഇത് ചുവടെയുള്ള ഉദാഹരണങ്ങളിൽ പോലെ മൈം ടൈപ്പ് സ്uട്രിംഗിന്റെ പ്രിന്റിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നു:

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

iconv ഉപയോഗിക്കുന്നതിനുള്ള വാക്യഘടന ഇപ്രകാരമാണ്:

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

ഇവിടെ -f അല്ലെങ്കിൽ --code-ൽ നിന്ന് എന്നത് ഇൻപുട്ട് എൻകോഡിംഗും -t അല്ലെങ്കിൽ --to-encoding വ്യക്തമാക്കുന്നു ഔട്ട്പുട്ട് എൻകോഡിംഗ്.

അറിയപ്പെടുന്ന എല്ലാ കോഡുചെയ്ത പ്രതീക സെറ്റുകളും ലിസ്റ്റുചെയ്യുന്നതിന്, താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

$ iconv -l 

ഫയലുകൾ UTF-8-ൽ നിന്ന് ASCII എൻകോഡിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുക

അടുത്തതായി, ഒരു എൻകോഡിംഗ് സ്കീമിൽ നിന്ന് മറ്റൊന്നിലേക്ക് എങ്ങനെ പരിവർത്തനം ചെയ്യാമെന്ന് നമ്മൾ പഠിക്കും. താഴെയുള്ള കമാൻഡ് ISO-8859-1 ൽ നിന്ന് UTF-8 എൻകോഡിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു.

പ്രതീകങ്ങൾ അടങ്ങിയ input.file എന്ന പേരിലുള്ള ഒരു ഫയൽ പരിഗണിക്കുക:

� � � �

ഫയലിലെ പ്രതീകങ്ങളുടെ എൻകോഡിംഗ് പരിശോധിച്ച് നമുക്ക് ആരംഭിക്കാം, തുടർന്ന് ഫയൽ ഉള്ളടക്കങ്ങൾ കാണുക. അടുത്ത്, നമുക്ക് എല്ലാ പ്രതീകങ്ങളും ASCII എൻകോഡിംഗിലേക്ക് പരിവർത്തനം ചെയ്യാൻ കഴിയും.

iconv കമാൻഡ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, ഞങ്ങൾ ഔട്ട്പുട്ട് ഫയലിന്റെ ഉള്ളടക്കവും ചുവടെയുള്ള പ്രതീകങ്ങളുടെ പുതിയ എൻകോഡിംഗും പരിശോധിക്കുന്നു.

$ 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 

ശ്രദ്ധിക്കുക: //IGNORE എന്ന സ്ട്രിംഗ് എൻകോഡിംഗിലേക്ക് ചേർത്തിട്ടുണ്ടെങ്കിൽ, പരിവർത്തനം ചെയ്യാൻ കഴിയാത്ത പ്രതീകങ്ങൾ, പരിവർത്തനത്തിന് ശേഷം ഒരു പിശക് ദൃശ്യമാകും.

വീണ്ടും, മുകളിലെ ഉദാഹരണത്തിലെ (ASCII//TRANSLIT) പോലെ സ്ട്രിംഗ് //TRANSLIT എൻകോഡിംഗിലേക്ക് ചേർത്തിട്ടുണ്ടെന്ന് കരുതുക, പരിവർത്തനം ചെയ്യുന്ന പ്രതീകങ്ങൾ ആവശ്യാനുസരണം ലിപ്യന്തരണം ചെയ്യപ്പെടുന്നു, സാധ്യമെങ്കിൽ. ടാർഗെറ്റ് പ്രതീക സെറ്റിൽ ഒരു പ്രതീകത്തെ പ്രതിനിധീകരിക്കാൻ കഴിയാത്ത സാഹചര്യത്തിൽ, ഒന്നോ അതിലധികമോ സമാനമായ പ്രതീകങ്ങളിലൂടെ അത് ഏകദേശം കണക്കാക്കാം.

തൽഫലമായി, ലിപ്യന്തരണം ചെയ്യാൻ കഴിയാത്തതും ടാർഗെറ്റ് പ്രതീക സെറ്റിൽ ഇല്ലാത്തതുമായ ഏത് പ്രതീകവും ഔട്ട്uപുട്ടിൽ ഒരു ചോദ്യചിഹ്നമായ (?) ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

ഒന്നിലധികം ഫയലുകൾ UTF-8 എൻകോഡിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുക

ഞങ്ങളുടെ പ്രധാന വിഷയത്തിലേക്ക് മടങ്ങുമ്പോൾ, ഒരു ഡയറക്uടറിയിലെ ഒന്നിലധികം അല്ലെങ്കിൽ എല്ലാ ഫയലുകളും UTF-8 എൻകോഡിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ encoding.sh എന്ന ചെറിയ ഷെൽ സ്uക്രിപ്റ്റ് എഴുതാം:

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

ഫയൽ സംരക്ഷിക്കുക, തുടർന്ന് സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ടബിൾ ആക്കുക. നിങ്ങളുടെ ഫയലുകൾ (*.txt) സ്ഥിതി ചെയ്യുന്ന ഡയറക്ടറിയിൽ നിന്ന് ഇത് പ്രവർത്തിപ്പിക്കുക.

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

പ്രധാനപ്പെട്ടത്: നിങ്ങൾക്ക് നൽകിയിട്ടുള്ള എൻകോഡിംഗിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ഒന്നിലധികം ഫയലുകളുടെ പൊതുവായ പരിവർത്തനത്തിന് ഈ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാം, FROM_ENCODING, TO_ENCODING വേരിയബിളിന്റെ മൂല്യങ്ങൾ ഉപയോഗിച്ച് കളിക്കുക, അല്ല ഔട്ട്uപുട്ട് ഫയലിന്റെ പേര് \$ {file%.txt}.utf8.converted\ മറക്കുന്നു.

കൂടുതൽ വിവരങ്ങൾക്ക്, iconv മാൻ പേജിലൂടെ നോക്കുക.

$ man iconv

ഈ ഗൈഡ് സംഗ്രഹിക്കാൻ, എൻകോഡിംഗും ഒരു പ്രതീക എൻകോഡിംഗ് സ്കീമിൽ നിന്ന് മറ്റൊന്നിലേക്ക് എങ്ങനെ പരിവർത്തനം ചെയ്യാമെന്നും മനസ്സിലാക്കുന്നത് ഓരോ കമ്പ്യൂട്ടർ ഉപയോക്താവിനും ആവശ്യമായ അറിവാണ്, അതിനാൽ ടെക്സ്റ്റുമായി ഇടപെടുമ്പോൾ പ്രോഗ്രാമർമാർക്കും.

അവസാനമായി, എന്തെങ്കിലും ചോദ്യങ്ങൾക്കോ ഫീഡ്uബാക്കുകൾക്കോ താഴെയുള്ള അഭിപ്രായ വിഭാഗം ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഞങ്ങളുമായി ബന്ധപ്പെടാം.