யுனிகோடின் பன்முகங்கள்

யுனிகோடைப் பார்த்து பலர் மிரண்டு போவதற்கான காரணங்களில் ஒன்று, சில
சமயம் வெவ்வேறு தோற்றதில் அது வெளிப்படுவதுதான். சில சமயம் நண்டுக்
கால்கள் மாதிரி, சிலபோது “தூதூ” என்று துப்பலாய், வேறு சில முறை முழுதும்
எண்களாய், இன்னும் சில சமயம் வெறும் கேள்விக் குறிகளாய்…
இந்தச் சிக்கல் யுனிகோடை கையாளும் இயக்கு தளங்களில் அதிகம் காணப்பெறாது
என்றாலும் யுனிகோடை கையாள இயலாத மென்பொருட்களால் நேரலாம். ஆனால் win98 போன்ற இயக்கு தளங்களில் வெகுவாகக் காணஇயலும். இவைகளுக்குக் காரணம், எந்த முறையில் அந்தப் படிவம் சேமிக்கப் பட்டிருக்கிறது அல்லது வெளிக்காட்டப்படுகிறது என்பதைப் பொருத்துத்தான்.

பொதுவாக இணைய தளங்களில் பாவிக்கப் படுவது UTF-8 என்கோடிங் முறை என்பதை நாம் அறிவோம். அதை ஒரு text கோப்பாக (ASCII) சேமித்து மீண்டும்
நோட்பேடில் திறந்தால் நீங்கள் பாவிக்கும் எழுத்துருவைப் பொறுத்து
விதவிதமாக (திஸ்கி எழுத்தாக இருந்தால் “தூஈஸதூஈ” என்பதாக) ஏதேதொ
தோன்றக்கூடும். இது யுனிகொடின் ஆஸ்கி வடிவமாகும்.

கேள்விக் குறிகளாய் தோன்றினால் ஒன்றை உறுதி செய்து விடலாம் – அந்த
குறிப்பிட்ட செயலி அல்லது இயக்க தளம் யுனிகோடை கையாளும் திறன் கொண்டது இல்லை என்று. எடுத்துக் காட்டாக இணைய தளங்களை யுனிகோடில் win98 ஆல் காட்ட இயலும் என்றாலும் நோட் பேட் போன்ற செயலிகளில் யுனிகோடின் வெளிப்பாடு கேள்விக் குறிகளாய்த்தான் அமையும்.

சில சமயங்களில் கட்டங்களாகவும் ஒரு எழுத்திற்கும் இன்னொரு
எழுத்திற்கும்(படிக்கும்படியாக முறையாக இருக்காது) ஒவ்வொரு இடைவெளி
விட்டு அமைந்திருந்தால் அந்தப் படிவம் 16 பிட் என்கோடிங் என்று
ஊகிக்கலாம்.

ஒரு சிறிய ஒற்றை வரிப் படிவம் கூட எண்களால் நிரம்பி வழிவதுபோல
காணப்படலாம். அது யுனிகோடின் எண் வடிவமாகும். ஒவ்வொரு எழுத்தும்,
புள்ளியும் நான்கு இடங்களைக் கொண்ட எண்ணாகவும் முன்னே #& என்பதைக்
கொண்டதாக்வும் இருக்கும். இக்குறிகள் தொடர்ந்து வரும் எண் யுனிகோடின்
எழுத்து மதிப்பு என்பதைக் குறிப்பதாக அமையும். இந்தக் குறிகளுடன்
எழுத்தின் மதிப்பு எண்கள் அமைந்த ஒரு படிவத்தை உலாவில் காண முயன்றால் அது படிக்கும்படியான யுனிகோடு எழுத்தாக வெளிப்படும்.

யுனிகோடின் பன்முகங்களைப் பார்த்தோம். ஏன் இப்படிப் பலவாறாகத் தோன்ற
வேண்டும்? குறிப்பாக யாஹ¥வில் யுனிகோடு எழுதத் துடிக்கும் அன்பர்கள்
சளித்துக் கொள்வது இந்த நண்டுக்கால்கள் சிக்களால்தான். இதற்குக் காரணம்
முன்னே சொன்னபடி, படிவம் யுனிகோடில் எழுதப் பட்டிருந்தாலும் அதைத்
தாங்கிவரும் யாஹ¥வின் வலைத்தாள் (வலைப் பக்கம்) யுனிகோடு அல்லாத வேறு
என்கோடிங்கில் அமைந்திருப்பதுதான். எனவே யுனிகோடு அஞ்சலைப் படிக்க
ஒவ்வொரு முறயும் UTF-8 க்குத் தாவ வேண்டியிருக்கிறது. ஆனால் ஜி-மெயில்
அஞ்சல்களை அனுப்பும்போது UTF-8 இலேயே அனுப்புகிறது. எனவே எந்த
மாற்றமுமில்லாமல் யுனிகோடைப் படிக்க இயலுகிறது.

யுனிகோடு ஆவணங்களைச் சேமிப்பது பற்றி:
பலவாறான வலைப் பக்கங்களை நாம் படிக்கிறோம். கிட்டத்தட்ட எல்லா வலைப்
பக்கங்களிலும் அந்தப் பக்கத்தைப் படிக்க எந்த என்கோடிங்கை உலாவி தேர்வு
செய்ய வேண்டும் என்பது குறிக்கப்பட்டிருக்கும். அதற்கொப்ப நாம் அந்த
பக்கத்தை அணுகும்போது உலாவின் என்கோடிங் தானாகவே மாறிக் கொள்ளும்.
அப்படியல்லாத ஒரு யுனிகோடு படிவத்தைச் சேமித்துத் திறக்கும்போது சரியான
என்கோடிங்கில் திறந்தால் மட்டுமே ஆவணத்தைப் படிக்க இயலும்.

யுனிகோடு என்பது 16 பிட்டுக்களை கொண்டது என்பதை நாம் அறிவோம். ஒரு
யுனிகோடு ஆவணம். UTF-8 என்ற வகை இணையத்திற்கு உகந்ததாகக் கருதப்
படுகிறது. காரணம், புழக்கத்தில் இருக்கும் பிற என்கோடிங்கள் 8 பிட்
வகையாக இருப்பதால் அவற்றோடு யுனிகோடையும் 8 பிட்டில் தந்தால் சிக்கல்
இருக்காதல்லவா? அதனால்தான் 16 பிட் என்பதை இரண்டு எட்டு பிட்டுக்கலாகப்
பிரித்து UTF-8 வகை ஆக்கப் படிருக்கிறது. உலாவியைப் பொறுத்தவை என்ன
என்கோடிங் என்பதை மீயுரை மூல நிரலில்(html source) குறித்து விடலாம்.
ஆனால் பிற செயலிகள் எவ்வாறு அறிந்து கொள்ளும்? அதற்கும் ஒரு வகை
செய்திருக்கிறார்கள். படிவத்தின் தொடக்கத்தில் ஒரு “BOM” வைத்துவிடுவது –
பயந்து விடதீர்கள். Byte Order Mark என்பதைத்தான் சுருக்கமாக “BOM” என்று
குறிக்கிறார்கள். இந்த Byte Order Mark என்பது, இந்த ஆவணம் எந்த வகையில்
என்கோடிங் செய்யப் பட்டுள்ளது என்பதைக் குறிக்கும். 16 பிட்டுக்களா
அல்லது இரண்டு எட்டு பிட்டுக்களா என்பதை செயலி எளிதில் உணர்ந்து
கொள்ளும்(16 இலும் கூட இரண்டு வகையுண்டு. அதைப்பற்றி இங்கு அவசியமில்லை).

“அன்புள்ள அம்மா எப்படி இருக்கிறீர்கள்?” என்ற சொற்றொடர் கொண்ட சிறிய
UTF-8 ஆவணம் எப்படி வெவ்வேறு விதமாகத் தெரிகிறது என்ரு பாருங்கள்:

இது BOM இல்லாத ஆவணம்:
http://www.geocities.com/csd_o­ne/zUTF-noBOM.htm

நான் மேலே குறிப்பிட்ட சொட்றொடரை நாமாக UTF-8 ஐ தேந்தெடுக்காத வரையில் பார்க்க இயலாது.

அதே ஆவணம் BOM குறிகளுடன்:
http://www.geocities.com/csd_o­ne/zUTF-BOM.htm

இதை உலாவியில் ஏற்றிய மாத்திரத்திலேயே எழுத்துக்கள் சரியாகத் தெரியும்.
அதாவது அந்த BOM குறிகள் யுனிகோடின் எந்த வகை என்கோடிங்கைச் சார்ந்தது
என்று உணர்த்திவிடும்.

ஆக, யுனிகோடை கையாளும் மற்ற செயலிகள் (உதாரணமாக, Win-Xp இல் நோட் பேட்) உரைகளைச் சேமிக்கும்போது இந்த BOM ஐச் சேர்த்துவிடும். எனவே அந்த ஆவணத்தை பிற யுனிகோடு தளங்களில் எளிதாகத் திறக்க இயலும்.

இணையத்திலிருந்து பெறப்படும் ஆக்கங்களை, உரைகளைச் சேமிப்பது என்பது
Win2000, XP போன்ற தளங்களில் எளிதானதுதான். இணையப் பக்கங்களிலிருந்து
பிரதி எடுத்து நோட்பேட் போன்றவற்றில் ஒட்டி சேமித்து விடலாம். ஆனால்
Win98 பாவிப்பவர்கள் இப்படிச் செய்ய இயலாது. காரணம் யுனிகோடை வெட்டி
நோட்பேடில் ஒட்டினால் வெறும் கொக்கிகளாகத்தான் தெரியும். அப்படியானால்
என்ன வழி?

ஒரு எளிய வழி, இணையப் பக்கங்களை உலாவியின் வழியே சேமிப்பது. அப்படிச்
சேமிக்கும்போது நமக்கு வேண்டிய வகையில் சேமித்துக் கொள்ளலாம். ஒரு
மீயுரை(html) கோப்பாகவோ அல்லது text வடிவிலோ யுனிகோடாக சேமித்துக் கொள்ள இயலும். இந்தக் கோப்புக்களை 16 பிட் அல்லது UTF-8 வடிவிலும் சேமித்துக் கொள்ளலாம் என்றாலும் UTF-8 வகையில் சேமிப்பதுதான் நாம் எளிதாகக் கையாளும் வகையாக அமையும்.

இப்படி யுனிகோடு படிவத்தை UTF-8 வடிவத்தில் சேமித்தாலும் அதைத்
திறக்கும்போது UTF-8 என்கோடிங்கை ஏற்றுக் கொள்ளும் வகையில் அந்தச் செயலி
இருக்க வேண்டும் (open as UTF-8). அப்படி இல்லையென்றால் எழுத்துக்கள்
கொக்கிகளாக அல்லது வேறு குழம்பிய வடிவமாத்தான் தோன்றும்.
பல செயலிகளில் save as இருப்பது போல் open as இருப்பதில்லை. சரியான
யுனிகோடு என்கோடிங்கில் எப்படி திறக்க வகை செய்வது?

நாம் சேமித்த ஆவணத்தின் முன்னால் நாம் முன்னே கண்ட BOM ஐ இட்டுவிட்டால்
போதும். UTF-8 என்பதைக் குறிக்க EF BB BF (hex) என்ற BOM குறிகளைச்
சேர்க்க வேண்டும். எப்படிச் சேர்ப்பது என்று பார்ப்போம். முதலில் ஒன்றை
நாம் நினைவில் கொள்ள வேண்டும். நம்முடைய ஆவணத்தை உரையாக (ASCII)
சேமித்திருக்கிறோம் அல்லவா? எனவே, EF BB BF என்பதை ASCII வடிவில்
தரவேண்டும். இவைகளுக்குச் சமமான ASCII எண் வடிவங்கள்: 0239 0187 0191.
இந்த எண்களை நேரடியாக இடக் கூடாது. நாம் “பிட்டு” களைச் சேர்க்கவேண்டும்
அல்லவா? எனவே கீழ்க்காணும் முறையைக் கையாளலாம்.

1. முதலில் ஆவணத்தை ஒரு டெக்ஸ்ட் எடிட்டரில் (நோட்பேட்) திறந்து கொள்ளுங்கள்.
2. திரையில் மினுக்கும் cursor, உரையின் தொடக்கதில் இருக்குமாறு
வையுங்கள் (அல்லத்து CTRL+HOME ஐ அழுத்துங்கள்)
3. ALT பொத்தானை அழுத்தியவாறு 0239 என்பதை தட்டச்சுப் பலகையின் வலது
புறம் இருக்கும் எண்கள் பொத்தான்(numerical pad)களை அழுத்தி
உள்ளிடுங்கள். பின்னர் ALT பொத்தானை விடுவித்து விடுங்கள். இப்போது ஏதோ
ஓர் எழுத்து திரையில் விழுந்திருக்கக் காண்பீர்கள். கவனிக்க: “!@#$%….”
பொத்தான்களில் இருக்கும் எண் வரிசையை பயன்படுத்தக் கூடாது.
4. இனி இவ்வாறே, 0187, 0191 ஆகிய எண்களையும் அடுத்தடுது உள்ளிடுங்கள்.
இந்த எண்கள் ஒவ்வொன்றிற்குமாக ஓர் எழுத்து திரையில் விழக் காண்பீர்கள்.
5. திறந்த கோப்பை அதே பெயரில் சேமித்து மூடி விடுங்கள். அவ்வளவுதான்.

இனி அந்தக் கோப்பு எந்த ஒரு UTF-8 செயலியாலும் கையாளப் படும்.
மற்றவர்களுன் இந்த யுன்கோடு கோப்பைப் பகிர்ந்து கொள்ளலாம்.

இனி யுனிகோடு இணையப் பக்கம் எழுதுவோருக்கு ஒரு கொசுறு:
யுனிகோடு பக்கங்களை எழுதி முடித்தவுடன், அதை ISO-8859-1 (அல்லது
windows-1252) என்ற எண்கோடிங்கில் சேமியுங்கள். இப்படிச் சேமிப்பதால்
எல்லா யுனிகோடு எழுத்துக்களும் எண்வடிவில் மாறிவிடும். இதனால் ஏற்படும்
ஒரு நன்மை என்னவென்றால் பயனர் UTF-8 ஐத் தேறாமல் ISO-8859-1 அல்லது
windows-1252 இல் வைத்திருந்தாலும் யுனிகோடு எழுத்துக்களை அவரால் காண
இயலும். குறைந்த பட்சம் மனம் வெறுத்துப் போக மாட்டார் அல்லவா? 🙂

கணிஞர் உமர்