اردو ویب سائیٹ اور اینکوڈنگ سسٹم

بلال

محفلین
بسم اللہ الرحمن الرحیم
کچھ ویب ڈیزائنر و ڈویلپر کو اردو ویب سائیٹ بنانے میں تھوڑا مسئلہ ہوتا ہے۔ بلکہ جو انگلش میں ویب سائیٹ بنا رہے ہیں اگر وہ یہ کہیں کہ انہیں اردو میں ویب سائیٹ بنانی نہیں آتی تو اس پوسٹ سے ان کو بھی اس بات کا علم ہو جائے گا کہ اردو ویب سائیٹ بنانے کے لئے کسی بڑی کوڈنگ کی ضرورت نہیں ہوتی۔ زیادہ تر مسئلہ یہی ہوتا ہے کہ اردو ٹھیک طرح نظر نہیں آتی۔ عام طور پر یہ اینکوڈنگ سسٹم (Encoding System) کا مسئلہ ہوتا۔ اردو ویب پیج بناتے ہوئے اگر اینکوڈنگ کا دھیان نہ رکھا جائے تو پیج کا حلیہ بگڑ جاتا ہے اور اردو کی بجائے کوئی خلائی زبان ہی نظر آنا شروع ہو جاتی ہے۔ جیسے ” السلام Ø¹Ù„Û “۔ اس کے علاوہ ایک صورت یہ بھی ہو جاتی ہے ”??????????“۔ مجھے عام طور پر تو یہی دو صورتیں نظر آئی ہیں۔
سب پہلے یہ ذہن میں رکھ لیں کہ جب بھی کمپیوٹر پر کسی بھی زبان میں کچھ لکھا جاتا ہے تو کمپیوٹر اس کو کسی خاص اینکوڈنگ سسٹم کے ذریعے محفوظ کرتا ہے۔ کئی سافٹ ویئرز لکھی ہوئی زبان کے مطابق خود پہچان کر لیتے ہیں کہ یہ کونسے اینکوڈنگ سسٹم میں محفوظ کرنی ہے جیسے مائیکروسافٹ ورڈ وغیرہ لیکن کئی سافٹ ویئرز کو فائل محفوظ کرتے ہوئے بتانا ہوتا کہ اس فائل میں لکھی ہوئی زبان فلاں اینکوڈنگ سسٹم کے تحت محفوظ کرو جیسے نوٹ پیڈ کو۔ پھر جب ہم اس فائل کو دوبارہ کھولتے ہیں تو وہ اپنے اینکوڈنگ سسٹم کے مطابق کھلتی ہے۔ اردو کے لئے یونیکوڈ UTF-8 اینکوڈنگ سسٹم استعمال ہوتا ہے۔ اینکوڈنگ سسٹم اور یونیکوڈ کے بارے میں مزید جاننے کے لئے یہاں دیکھیں۔
ابھی ہم اردو ویب سائیٹ میں اینکوڈنگ سسٹم کو تفصیل سے دیکھتے ہیں۔
کسی بھی ویب سائیٹ کا مواد سرور پر محفوظ فائل یا ڈیٹابیس سے لے کر دیکھنے والے کے براؤزر تک اینکوڈنگ کے حوالے کئی مراحل سے گذرتا ہے۔ سب سے پہلے سرور جب فائل پڑھتا ہے تو وہ دیکھتا ہے کہ فائل کس اینکوڈنگ سسٹم میں ہے پھر اگر اس فائل میں کچھ مواد ڈیٹابیس سے بھی آنا ہو تو اس میں یہ دیکھا جاتا ہے کہ ڈیٹابیس سے مواد کس اینکوڈنگ سسٹم میں ہے۔ پھر سب کو دیکھ کر سرور صارف کی ضرورت کے مطابق ایک صفحہ صارف کے براؤزر کو ارسال کر دیتا ہے اور پھر براؤزر سرور کے بھیجے ہوئے اینکوڈنگ سسٹم کے مطابق مواد صارف کو دیکھا دیتا ہے۔
ویب سائیٹ بنانے کے حوالے سے عام طور پر اس سارے کام میں ہمیں درج ذیل چیزوں کے اینکوڈنگ سسٹم کا دھیان رکھنا ہوتا ہے۔

1:- فائل بناتے یا محفوظ کرتے ہوئے اینکوڈنگ سسٹم۔

2:- اگر ڈیٹابیس ہو تو اس کا اینکوڈنگ سسٹم۔

3:- کوڈنگ پر کاروائی کرتے ہوئے اینکوڈنگ سسٹم۔

4:- کئی بار سرور کا اینکوڈنگ سسٹم۔


اب ان مراحل کی کچھ تفصیل

فائل بناتے یا محفوظ کرتے ہوئے اینکوڈنگ سسٹم۔
جب کسی ویب سائیٹ کی فائل بناتے اور پھر محفوظ کرتے ہیں تو فائل کے اینکوڈنگ سسٹم کا دھیان رکھنا ہوتا ہے۔ جس فائل میں اردو لکھی ہو اور اس فائل کا اینکوڈنگ سسٹم UTF-8 نہ رکھا ہو تو پھر اردو مواد خراب ہو جائے گا اور زیادہ تر ”؟؟؟؟؟؟؟؟“ کی شکل میں نظر آئے گا۔ ایک بات اچھی طرح ذہن نشین کر لیں کہ فائل محفوظ کرتے ہوئے جو اینکوڈنگ سسٹم رکھا جاتا ہے وہ فائل میں موجود مواد پر لاگو ہوتا ہے۔ جب فائل کھلتی ہے تو اپنے محفوظ کیے ہوئے اینکوڈنگ سسٹم میں ہی کھلتی ہے۔ آسان الفاظ میں آپ اس کو یوں سمجھ سکتے ہیں کہ جب سرور اس فائل کو پڑھنے اور پھر اس پر مزید کاروائی کرنے کے لئے کھولتا ہے تو فائل اپنے اندر موجود مواد کو اپنے اینکوڈنگ سسٹم کے مطابق تبدیل کر کے سرور کو دے دیتی ہے۔ اب فائل میں لکھی اردو ہو اور اینکوڈنگ سسٹم UTF-8 کے علاوہ کوئی اور ہو تو پھر فائل نے سرور کو ؟؟؟؟؟؟؟؟ کی شکل میں مواد دینا ہے تو پھر سرور بیچارہ ؟؟؟؟؟؟؟؟ نہ دیکھائے تو کیا دیکھائے؟ اس لئے ویب سائیٹ بناتے ہوئے جس فائل میں اردو لکھی ہو اس کو ٹھیک صورت میں دیکھنے کے لئے ہمیشہ فائل بناتے ہوئے یا پھر محفوظ کرتے ہوئے اینکوڈنگ سسٹم UTF-8 رکھیں۔ ویسے بھی جس فائل میں اردو لکھی ہو اور اسے UTF-8 اینکوڈنگ سسٹم کے تحت محفوظ نہ کریں تو جس اینکوڈنگ سسٹم میں فائل محفوظ کی جائے گی، اردو کے حروف اس اینکوڈنگ کے مطابق محفوظ ہوں گے اور ایسی صورت میں اردو کے حروف اپنی اصل شکل کھو دیں دے اور مختلف اشکال اختیار کر جائیں گے۔ جب اسی فائل کو دوبارہ کھول کر دیکھا جائے گا تو اس میں اردو کی بجائے کوئی اور ہی زبان بن چکی ہو گی۔

اگر ڈیٹابیس ہو تو اس کا اینکوڈنگ سسٹم۔
اگر آپ کوئی ڈائینامک ویب سائیٹ بنا رہے ہیں جس کے ساتھ ڈیٹابیس بھی ہے اور ڈیٹابیس میں موجود مواد میں اردو بھی شامل ہے تو پھر ڈیٹابیس بناتے ہوئے ڈیٹابیس کی کولیشن (Collation) یونیکوڈ کے مطابق رکھیں۔ عام طور پر کولیشن utf8_general_ci رکھی جاتی ہے۔ اگر آپ کے ہوسٹنگ سرور میں ڈیٹابیس کہیں اور سے بنتی ہے جہاں پر ڈیٹابیس بناتے ہوئے کولیشن کا آپشن موجود نہیں جیسا کہ Cpanel میں ہوتا ہے تو پھر ڈیٹابیس بنا کر کوئی بھی ٹیبل بنانے یا کوئی سی ایم ایس انسٹال کرنے سے پہلے phpMyAdmin میں جائیں اور اپنی ڈیٹابیس منتخب کر کے Operations میں جائیں اور وہاں سے کولیشن utf8_general_ci کر کے Go کا بٹن دبادیں۔ یوں آپ کی ڈیٹابیس کی کولیشن utf8_general_ci ہو جائے گی اور ڈیٹابیس میں اردو اپنی اصل حالت میں موجود رہے گی۔ جس طرح کوئی فائل جس میں اردو لکھی ہو کو محفوظ کرتے ہوئے اینکوڈنگ سسٹم UTF-8 نہ دیں تو اردو کی حالت تبدیل ہو جاتی ہے اور دوبارہ کھولنے پر اردو کی بجائے کوئی اور ہی زبان بن جاتی ہے ایسے ہی اگر ڈیٹابیس کی کولیشن utf8_general_ci کی بجائے کوئی اور رکھی جائے تو جب اردو مواد ڈیٹابیس میں داخل کیا جائے گا تو وہ ؟؟؟؟؟؟؟ کی صورت میں ڈیٹابیس میں محفوظ ہو گا۔ اس لئے ڈیٹابیس میں اردو مواد داخل کرنے سے پہلے ڈیٹابیس کی کولیشن utf8_general_ci کر لیں۔

کوڈنگ پر کاروائی کرتے ہوئے اینکوڈنگ سسٹم
پہلے دونوں نقاط میں دیکھا ہے کہ فائل اور ڈیٹابیس میں محفوظ ہونے والے مواد پر کونسا اینکوڈنگ سسٹم لاگو ہو گا اور جب سرور فائل یا ڈیٹابیس تک پہنچے گا تو فائل یا ڈیٹابیس اپنے مواد کو کس اینکوڈنگ سسٹم کے ذریعے پڑھے گی۔اس کے بعد وہ مرحلہ آتا ہے جس میں سرور کو بتایا جاتا ہے کہ فائل یا ڈیٹابیس سے ملنے والے مواد پر اپنی کاروائی کس اینکوڈنگ سسٹم کے تحت کرنی ہے۔ عام طور پر اس کے لئے ایچ ٹی ایم ایل کے ٹیگ کے اندر ٹیگ کچھ اس طرح استعمال کیا جاتا ہے۔
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
اس کے علاوہ اگر ڈیٹابیس سے بھی کوئی مواد موصول ہو رہا ہے اور اس پر کاروائی کی جا رہی ہے تو جس ویب پروگرامنگ لینگوئج میں کوڈنگ کی جارہی ہے اس کے مطابق سرور کو یہ بھی بتایا جاتا ہے کہ ڈیٹابیس سے موصول ہونے والے مواد پر اس اینکوڈنگ سسٹم کے تحت کاروائی کرو۔ زیادہ تر سی ایم ایس کا یہ اینکوڈنگ سسٹم UTF-8 ہی ہوتا ہے۔ مثال کے طور پر ”ورڈپریس“۔
کوڈنگ پر کاروائی کرتے ہوئے اگر اینکوڈنگ سسٹم UTF-8 کے علاوہ کوئی اور ہو گا تو پھر بھی اردو اپنی اصل شکل میں نہیں رہے گی اور زیادہ تر یہی دیکھنے میں آیا ہے کہ ایسی صورت میں اردو کے حروف کی حالت کچھ السلام Ø¹Ù„Û اس طرح ہو جاتی ہے۔

کئی بار سرور کا اینکوڈنگ سسٹم۔
”کئی بار“ اس لئے لکھا ہے کہ زیادہ تر ویب ہوسٹنگ سرور کا ڈیفالٹ (Default) اینکوڈنگ سسٹم UTF-8 ہی ہوتا ہے۔
سرور سے براؤزر کو جو مواد منتقل ہوتا ہے وہ سرور کے ڈیفالٹ اینکوڈنگ سسٹم کے تحت ہی منتقل ہوتا ہے اور پھر براؤزر اسی اینکوڈنگ سسٹم کے تحت صارف کو مواد دیکھاتا ہے۔ اگر سرور کا ڈیفالٹ اینکوڈنگ سسٹم UTF-8 نہیں ہو گا تو پھر سرور براؤزر کو مواد کسی اور اینکوڈنگ سسٹم میں بھیجے گا اور ایسی صورت میں بھی اردو کے حروف کی حالت کچھ السلام Ø¹Ù„Û اس طرح ہو جاتی ہے۔
لوکل ہوسٹ کے لئے میں یونی فارم سرور استعمال کرتا ہوں اس لئے یونی فارم سرور کا ڈیفالٹ اینکوڈنگ سسٹم UTF-8 کرنے کے لئے درج ذیل طریقہ اختیار کریں۔
UniServer\udrive\usr\local\apache2\conf
فولڈر میں جائیں اور وہاں پر موجود httpd.conf فائل کو کسی ٹیکسٹ ایڈیٹر مثلا نوٹ پیڈ میں کھولیں اور اس فائل میں AddDefaultCharset کو تلاش کریں۔ عام طور پر یونی فارم سرور میں یہ ISO-8859-1 ہوتا ہے اس کو تبدیل کر کے UTF-8 کر دیں۔ یعنی پہلے پوری لائن AddDefaultCharset ISO-8859-1 اس طرح ہو گی اس کو AddDefaultCharset UTF-8 کر کے فائل محفوظ کر دیں۔ اس طرح آپ کے لوکل سرور کا ڈیفالٹ اینکوڈنگ سسٹم UTF-8 ہو جائے گا۔ سرور کو سٹاپ کریں اور دوبارہ سٹارٹ کر لیں۔ یونی فارم سرور کے کئی ورژن میں یہ دونوں لائنیں یعنی AddDefaultCharset ISO-8859-1 اور AddDefaultCharset UTF-8 دونوں موجود ہوتی ہیں لیکن ان دونوں لائنوں کے شروع میں # لگا ہوتا ہے۔ AddDefaultCharset UTF-8 والی لائن کے شروع میں جو # لگا ہوا ہے اسے ختم کر دیں تو سرور کا ڈیفالٹ اینکوڈنگ سسٹم UTF-8 ہو جائے گا۔

خلاصہ
اردو ویب سائیٹ بناتے ہوئے جس فائل میں اردو لکھی ہو اس کو بناتے یا محفوظ کرتے ہوئے اینکوڈنگ سسٹم UTF-8 رکھا جائے۔ ڈیٹابیس کی کولیشن utf8_general_ci رکھی جائے۔ ایچ ٹی ایم ایل کے ٹیگ کے اندر ٹیگ کچھ اس طرح استعمال کیا جاتا ہے۔
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
ڈیٹابیس سے آنے والے مواد پر کاروائی کرنے کے لئے سرور کو اینکوڈنگ سسٹم UTF-8 کے بارے میں بتانے کے لئے کوڈنگ کی جائے اور اگر کوئی سی ایم ایس استعمال کیا جا رہا ہے تو اس کا اینکوڈنگ سسٹم UTF-8 رکھا جائے۔ ویب ہوسٹنگ سرور کا ڈیفالٹ اینکوڈنگ سسٹم بھی UTF-8 ہی رکھا جائے۔

نوٹ:- یہ تحریر میں نے اپنے تجربات کی بنیاد پر لکھی ہے۔ قوی امید ہے کہ یہ آپ کے لئے آسانی کا باعث ہو گی اور یہ بھی امید ہے کہ اس تحریر میں غلطیاں بھی ہو سکتی ہیں۔ اگر آپ کو کوئی غلطی نظر آئے تو مجھے ضرور بتائیے تاکہ میں اسے درست کرتے ہوئے اس تحریر کو مزید بہتر کر سکوں۔
 
محفل میں اس مضمون کو شریک کرنے کا شکریہ۔ آپ کی بیشمار بہترین مضامین میں ایک اور اضافہ۔ ویسے ہم تو آپ کے بلاگ پر بھی پڑھ آئے تھے۔ :)
 

بلال

محفلین
محفل میں اس مضمون کو شریک کرنے کا شکریہ۔ آپ کی بیشمار بہترین مضامین میں ایک اور اضافہ۔ ویسے ہم تو آپ کے بلاگ پر بھی پڑھ آئے تھے۔ :)

سب سے پہلے تو میری چھوٹی سی کاوش پسند کرنے کا بہت شکریہ۔
سعود بھائی کل رات کو جس وقت یہ تحریر اپنے بلاگ پر شائع کی اس وقت ہی محفل پر شائع کرنے کا پروگرام تھا لیکن نیند اتنی آئی ہوئی تھی کہ سوچا اب کل محفل پر شائع کر دوں گا۔ اب جب یہاں شائع کرنے لگا تو مجھے احساس ہوا کہ میں نے یہاں اپنی محفل (جس کا مجھے ایسی تحریر لکھنے کے قابل بنانے میں بہت بڑا حصہ ہے) پر شیئر کرنے میں تھوڑی دیر کر دی ہے۔
 

dehelvi

محفلین
جو لوگ اردو ڈیویلپمنٹ میں نو آموز ہیں ان کے لئے یہ آرٹیکل واقعی مشعل راہ ہے۔ جزاک اللہ
 

hamid ali

محفلین
بہت اعلیٰ بھائی میرا مسئلہ اب انشااللہ ٹھیک ہوجائے گا اردو فورم کا آپکے لئے بہت دعائیں
جنہوں نے یہ پوسٹ چسپاں کیا ہے انکے لئے بھی بہت دعائیں۔
 
Top