لینکس میں iconv کمانڈ

Lynks My Iconv Kman



اس مضمون کو لاگو کرنے کی طرف گہرائی میں جانے سے پہلے اپنی لینکس مشین کو اپ ڈیٹ کرنا یقینی بنائیں۔ اپ ڈیٹ کے لیے، 'اپ ڈیٹ' کلیدی لفظ کے ساتھ لینکس کی 'apt' یوٹیلیٹی استعمال کریں اور 'sudo' مراعات کا استعمال کرتے ہوئے اس ہدایت کو چلائیں۔ اگرچہ ہم ابھی نفاذ کے لیے کود سکتے ہیں، لیکن ہم اس سسٹم کو بھی اپ گریڈ کرنے کو ترجیح دیں گے، یعنی، اپ گریڈ کرنے سے غلطیوں کے ہونے کا امکان کم ہو جائے گا، اور سسٹم مسائل کو زیادہ درست طریقے سے حل کرنے کے قابل ہو جائے گا۔ لہذا، 'اپ گریڈ' ہدایات کے اندر 'آپٹ' یوٹیلیٹی استعمال کریں۔

آئیے اب اس کے ٹرمینل کنسول میں لینکس کی iconv یوٹیلیٹی کو دیکھتے ہیں۔ لہذا، ہم اپنی ٹرمینل اسکرین پر تمام معروف اور سب سے زیادہ استعمال ہونے والے کوڈڈ کریکٹر سیٹ کو ظاہر کرنے کے لیے '-l' جھنڈے کے ساتھ ہدایات 'iconv' پر عمل کر رہے ہیں۔ یہ ان کے عرفی ناموں کے ساتھ کوڈڈ کریکٹر سیٹ دکھائے گا۔ تھوڑا سا نیچے سکرول کرنے کے بعد آپ کوڈڈ کریکٹر سیٹس کی ایک لمبی فہرست دیکھ سکتے ہیں۔







اب، لینکس میں iconv کمانڈ کے نفاذ کے ساتھ شروع کرنے کا وقت ہے۔ سب سے پہلے، ہمیں ایک قسم کی فائل کو دوسری قسم میں تبدیل کرنے کے لیے اپنے سسٹم میں مختلف قسم کی فائلوں کی ضرورت ہے۔ اس طرح، ہم کنسول ٹرمینل پر 'ٹچ' استفسار کو تین مختلف فائلیں بنانے کے لیے استعمال کر رہے ہیں، یعنی جاوا ٹائپ، سی ٹائپ، اور ٹیکسٹ ٹائپ۔ موجودہ ڈائرکٹری کے مشمولات کی فہرست، آپ کو اس میں نئی ​​تیار کردہ فائلیں ملیں گی۔



اس کے بعد، ہم ہر فائل کے نام کے ساتھ 'فائل' استفسار کا استعمال کرتے ہوئے ہر فائل کی قسم کو الگ الگ دیکھیں گے۔ اس استفسار کو ہر فائل کے لیے الگ الگ کوڈنگ کریکٹر سیٹ کی قسم کو ظاہر کرنے کے لیے '-I' اختیار کی ضرورت ہے۔ اگر آپ '-I' اختیار استعمال کرنا بھول گئے ہیں، تو اس کے بجائے '-mime' جھنڈا استعمال کریں۔ '-I' اور '-mime' دونوں جھنڈے ایک جیسے کام کرتے ہیں۔



اب، 'txt' قسم کی فائل کے لیے 'فائل' ہدایات پر عمل کرنے کے بعد، ہمیں 'US-ASCII' کریکٹر ٹائپ انکوڈنگ مل گئی۔ جاوا اور سی فائلوں کے لیے ایک ہی ہدایات کا استعمال کرتے ہوئے، یہ ظاہر کرتا ہے کہ دونوں فائلوں میں 'BINARY' کریکٹر ٹائپ انکوڈنگ ہوتی ہے۔ اس کے ساتھ یہ ہدایت ظاہر کرتی ہے کہ یہ تینوں فائلیں خالی ہیں۔





اب، ہم کنسول میں ایک مخصوص کریکٹر سیٹ انکوڈنگ فائل کو دوسرے کریکٹر سیٹ انکوڈنگ میں تبدیل کرنے کے لیے iconv انسٹرکشن کے استعمال کی وضاحت کریں گے۔ اس سے پہلے، ہمیں اپنی فائلوں میں کچھ کوڈ یا ڈیٹا شامل کرنا ہوگا۔ لہذا، ہم نے 'text.java' فائل میں جاوا کوڈ، 'text.c' فائل میں C کوڈ، اور 'test.txt' فائل میں ٹیکسٹ ڈیٹا شامل کیا ہے۔ کیٹ کا سوال یہاں تینوں فائلوں کے مواد کو ظاہر کرنے کے لیے استعمال کیا گیا تھا، جیسا کہ ذیل میں پیش کیا گیا ہے۔



اب جب کہ ہم نے ڈیٹا کو کامیابی کے ساتھ شامل کر لیا ہے، ہم ان فائلوں کے کریکٹر سیٹ انکوڈنگ کو ایک بار پھر دیکھیں گے۔ لہذا، ہم نے شیل کے اندر '-I' جھنڈے اور فائل کے ناموں کے ساتھ اسی فائل کی ہدایات کو آزمایا ہے، یعنی test.txt، test.java، اور test.c. ان تینوں ہدایات کو تینوں فائلوں کے لیے الگ الگ چلانے سے ظاہر ہوتا ہے کہ جاوا اور C فائلوں کے لیے کریکٹر سیٹ انکوڈنگ کو اپ ڈیٹ کر دیا گیا ہے جبکہ ٹیکسٹ فائل کے لیے وہی باقی ہے، یعنی US-ASCII۔ جاوا اور سی فائلوں کی انکوڈنگ پہلے 'بائنری' تھی؛ اب، یہ 'US-ASCII' ہے۔ نیز، یہ ظاہر کرتا ہے کہ ٹیکسٹ فائل میں سادہ ٹیکسٹ ڈیٹا ہوتا ہے جبکہ دیگر دو کوڈ فائلوں میں مواد کے بطور اسکرپٹ ہوتے ہیں۔

اس مضمون کے لیے درکار اصل کام کو انجام دینے کا وقت آگیا ہے، یعنی شیل میں iconv کمانڈ کا استعمال کرتے ہوئے ایک انکوڈنگ کو دوسرے میں تبدیل کریں۔ اس طرح، ہم شیل ٹرمینل کے اندر 'sudo' مراعات کے ساتھ 'iconv' ہدایات استعمال کر رہے ہیں۔ یہ کمانڈ '-f' آپشن لیتی ہے جس کا مطلب ہے 'from'، اور '-t' آپشن کا مطلب ہے 'to'، یعنی ایک انکوڈنگ سے دوسرے میں۔

'-f' آپشن کے بعد، آپ کو اپنی فائل میں پہلے سے موجود انکوڈنگ کی وضاحت کرنی ہوگی، یعنی US-ASCII۔ جب کہ '-t' آپشن کے بعد، آپ کو وہ انکوڈنگ بتانا ہوگی جسے آپ پرانی انکوڈنگ، یعنی UNICODE سے تبدیل کرنا چاہتے ہیں۔ آپ کو اس کی آبجیکٹ امیج بنانے کے لیے -o آپشن کے ساتھ بطور ماخذ استعمال ہونے والی فائل کا نام بتانا ہوگا۔ آبجیکٹ امیج ایک اور فائل ہو گی، یعنی 'new.c'، اسی قسم کی لیکن نئی انکوڈنگ اور اسی ڈیٹا کے ساتھ۔

درج ذیل ہدایات پر عمل کرنے کے بعد، آپ کو اسی ڈائرکٹری میں ایک نئی فائل ملے گی، یعنی 'ls' استفسار کے مطابق۔ اب، ہم iconv انسٹرکشن کا استعمال کرتے ہوئے تیار کردہ نئی فائل کے کریکٹر سیٹ انکوڈنگ کی جانچ کریں گے۔ ہم دوبارہ 'فائل' ہدایات کو '-I' آپشن اور نئے فائل کے نام کے ساتھ استعمال کریں گے، یعنی new.c.

آپ دیکھیں گے کہ اس نئی فائل کا کریکٹر سیٹ پرانی فائل کے کریکٹر سیٹ سے مختلف ہے، یعنی UTF-16LE کریکٹر سیٹ۔ اس کی وجہ یہ ہے کہ ہم نے اپنی new.c فائل کے لیے iconv انسٹرکشن کا استعمال کرتے ہوئے US-ASCII انکوڈنگ کو UNICODE انکوڈنگ میں ترجمہ کیا ہے۔ 'بلی' کے استفسار نے فائل کے اندر وہی C کوڈ ظاہر کیا لیکن کچھ یونیکوڈ حروف کے ساتھ شروع ہوا، جیسا کہ پہلے ہی پیش کیا گیا ہے۔

بالکل اسی طرح، ہم test.txt ٹیکسٹ فائل کی انکوڈنگ کو تبدیل کریں گے۔ فائل کی ہدایات سے پتہ چلتا ہے کہ اس میں US-ASCII کریکٹر سیٹ انکوڈنگ ہے۔ iconv کمانڈ کو test.txt فائل کی انکوڈنگ کو US-ASCII سے TURKISH8 میں تبدیل کرنے کے لیے اسی فارمیٹ کے ساتھ استعمال کیا گیا ہے۔ آپ دیکھیں گے کہ یہ US-ASCII کو ترکی میں تبدیل نہیں کرتا ہے۔

اس کے بعد، ہم نے اسی فائل کے لیے US-ASCII سے UTF-32 کریکٹر سیٹ انکوڈنگ کا احاطہ کرنے کے لیے وہی کمانڈ استعمال کیا۔ اس بار، یہ کام کرتا ہے. اس کی وجہ یہ ہے کہ بعض اوقات ایک انکوڈنگ سیٹ کو دوسرے میں تبدیل کرنے میں کوئی مسئلہ ہو سکتا ہے، یا دوسری انکوڈنگ اس کی حمایت نہیں کر سکتی ہے۔

نتیجہ

اس مضمون میں بحث کی گئی ہے کہ iconv لینکس ہدایات کو کس طرح استعمال کیا جائے تاکہ ایک انکوڈنگ کریکٹر سیٹ کو ان کے عرفی ناموں کا استعمال کرتے ہوئے دوسرے میں تبدیل کیا جائے۔ اس طریقے سے ہمیں مختلف اقسام کی کچھ فائلیں بنانا پڑیں۔