இரா. செல்வராசு

விரிவெளித் தடங்கள்

இரா. செல்வராசு header image 2

யூனிகோடும் UTF-8 முறையும்

November 25th, 2003 · 3 Comments

யூனிகோடு மற்றும் UTF-8 குறியீட்டு முறைகள் பற்றி எனக்கு இன்னும் கொஞ்சம் தெளிவு ஏற்பட்டிருக்கிறது.  கணிணிகளின் பயன்பாட்டுக்கு எப்படி அமெரிக்க ஆஸ்கி முறை ஆங்கில எழுத்துக்களுக்கு உரிய எண்களை அடையாளம் காட்டுகிறதோ, அதுபோல யூனிகோடு உலக மொழிகள் அத்தனையிலும் உள்ள எழுத்து வடிவங்களுக்கும் உரிய ஒரு எண்ணைக் கட்டிச் சேர்த்து வைக்கும் பெரிய அண்ணன். உதாரணத்திற்கு 65 என்றால் ‘A’,  ’97’ என்றால் குட்டி ‘a’ – இது ஆஸ்கி. ஒரு பைட்டுக்கு ஒரு எழுத்து என்று ஆங்கிலத்திற்கு மட்டும் 128 இடங்களுடன் அது போதுமானதாய் இருந்தது. ஏன் மிச்சம் ஒரு பிட் கூட இருந்தது. (இன்னொரு 128 இடங்கள் = விரிவு ஆஸ்கி). ஆனால் எல்லா மொழிகளையும் உள்ளடக்க இது போதுமானதாய் இல்லை. சரி, ஒன்றிற்கு இரண்டு பைட்டுகள் என்று (16 பிட் = 65536 இடங்கள்) எடுத்துக் கொண்டால் இது சாத்தியமாகும் என்று யூனிகோடு முயற்சிகள் ஆரம்பமாயின. இப்போது சில சீன, கொரிய, ஜப்பானிய எழுத்துக்களின் தேவைக்காக 4 பைட் வரை (32 பிட்) எடுத்துக் கொள்ளலாம் என்ற அளவிற்கு வந்திருக்கின்றனர். ஆனால் பெரும்பாலான மொழிகளை இன்னும் இரண்டு பைட்டுக்களுக்குள் அடக்கி விடலாம்.


0 முதல் 65535 வரையில் சாத்தியமான எண்களில், தமிழ் எழுத்துக்களுக்கு என்று ஒதுக்கப்பட்ட இடங்கள் 2944 முதல் 3071 வரை. இதையே U+0B80 முதல் U+0BFF வரை என்றும் கூடச் சொல்லலாம். இது பதினாறாம் அடிப்படையில் இருக்கும் இலக்க முறை (hexa decimal system representation). இந்த எண்களை இரண்டு பைட்டுக்களில் அடக்கி விடலாம். பதினாறு பிட்டுக்கள் போதும். எல்லா யூனிகோடு எழுத்துக்களையும் இரண்டு பைட்டுக்களுக்குள் அடைத்து விட முடியுமா எனில் அதில் சில இடைஞ்சல்கள். முதலில் பழைய ஆஸ்கி எழுத்துக்கள். அவை நீண்ட காலமாக ஒரு பைட் கொண்டே பயன்படுத்தப் பட்டன. அதனால் அதே முறையில் இருந்தால் தான் வசதி. இரண்டாவது, புதிய 4 பைட்டுக்கள் தேவைப்படும் சீ.கொ.ஜ (சீன, கொரிய, ஜப்பானிய) எழுத்துக்களை இரண்டு பைட்டுக்களில் அடக்க முடியாது.

இந்தச் சிக்கல்களை நீக்க ஒரு குறியீட்டு முறை வேண்டும் என்று பிறந்தது தான் UTF-8 முறை. இன்று இந்த முறை பரவலாகிக் கொண்டு வருகிறது. எந்த ஒரு யூனிகோடு எழுத்தையும் குறிக்க, ஒன்று முதல் நான்கு வரையிலான பைட்டுக்களைப் பயன்படுத்தலாம். குறிப்பாக, கீழ் ஆஸ்கி எனப்படும் ஆங்கில எழுத்துக்களுக்கு ஒரு பைட். மற்றவற்றிற்கு இரண்டோ மூன்றோ அல்லது நான்கோ. கீழே இருக்கும் பிட் அமைப்பைக் காண்க. ஒன்றும் பூஜ்யமும் மாறாதவை. ‘b’ என்றிருக்கும் இடங்கள் ஒன்றையோ பூஜ்யத்தையோ கொண்டிருக்கலாம்.

0bbbbbbb
110bbbbb 10bbbbbb
1110bbbb 10bbbbbb 10bbbbbb
11110bbb 10bbbbbb 10bbbbbb 10bbbbbb

தமிழ் எழுத்துக்கள் எல்லாமே (16 பிட்டுக்கள் போதும் என்றாலும்) இந்த முறைப்படி மூன்று பைட்டுக்கள் (24 பிட்டுக்கள்) கொண்டு அமைக்கப் படும். ஆனால், இன்னும் பல செயலிகளும், பழைய செயலிகளும் மூன்று மூன்று பைட்டாகச் சேர்த்து ஒரு எழுத்தாய்ப் பார்க்காமல், தனித்தனி பைட்டாகப் பார்ப்பதால், சில சமயம் எதிர்பாராத விதமாய்த் தமிழ் எழுத்துக்கள் குதறப் பட்டு கிறுக்கல்களாய்த் தெரியும்.

மனஓசை சந்திரவதனாவின் 16 November 2003 தேதிய இந்தப் பதிப்பைப் பாருங்கள். இந்த பைட் குதறல்களின் விளைவு இப்படி இருக்கிறது.

ம௅.. விடிநà¯à®¤à¯ விடà¯à®Ÿà®¤à®¾..?
நேறà¯à®±à¯ à®®à¯à®©à¯ தினம௠அஸà¯à®¸à¯†à®®à¯à®ªà®¿à®²à®¿ மீறà¯à®±à®¿à®™à¯. வீட௠வநà¯à®¤à¯ சேர நேரமாகி விடà¯à®Ÿà®¤à¯. வழமையில௠வரà¯à®Ÿà®¤à¯à®¤à®¿à®²à¯ ஒர௠நாளà¯à®¤à®¾à®©à¯ இபà¯à®ªà®Ÿà®¿ அடà¯à®Ÿà®•à®¾à®šà®®à®¾à®• இர
இந்தப் பக்கம் வரும் யாருக்காவது இதை எப்படி மாற்றலாமென விபரம் தெரிந்தால்
எனக்குத் தெரியப் படுத்துங்கள். என்னிடம் வேறு பிரதியும் இல்லை

என்னுடைய யூனிகோடு UTF-8 ஆராய்ச்சியும் முயற்சியும் கொண்டு என்னால் முடிந்த அளவு அவர் இழந்த பதிப்பை இப்படி மீட்டிருக்கிறேன். முழுவதையும் அவருக்கு மின்மடல் வாயிலாய் இன்று அனுப்பி விடுகிறேன்.

….. விடிந்த் விட்டதா..? நேற்ற் ம்ன் தினம் அஸ்ஸெம்பிலி மீற்றிங். வீட் வந்த் சேர நேரமாகி விட்டத். வழமையில் வர்டத்தில் ஒர் நாள்தான் இப்படி அட்டகாசமாக இர்க்க்ம். ஆனால் இவ்வர்டம் எமத் பழைய தலைமையதிகாரி ஓய்வில் சென்ற் விட ப்திய தலைமையதிகாரி வந்த் ஒரே அட்டகாசம்தான். இத் இவ்வர்டத்தின் மூன்றாவத் அட்டகாசமான அஸ்ஸெம்பிலி மீற்றிங். காரியதரிசியைத் தொடர்ந்த் தலைமையதிகாரியே கிறிஸ்மஸ் போனஸ், சம்பள உயர்வ், விட்ப்ப் விதிகள்…

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

Tags: கணிநுட்பம் · யூனிகோடு

3 responses so far ↓

  • 1 பரி // Feb 17, 2004 at 1:02 am

    அட, இங்க பாருய்யா கலக்குறாரு!
    எப்டி செஞ்சீங்கன்னு சொல்லிக்குடுங்களேன். இந்த யூனிகோட் மேட்டர் புரிஞ்சுது, ஆனா இந்த ஆட்ட மாடா மாத்துற வேலை எல்லாம் தெரியாது. பிளாக்ஸ்பாட் சில சமயம் இப்படி குதறி வைக்கும். எனக்கும் இப்படி நடந்திருக்கு. இப்போலாம் உஷாரா நோட்பேட்-ல டைப் பண்ணி ஒட்டிகிட்டு இருக்கேன்

    ??, ???Ĭ̈?ա
    ?

  • 2 செல்வராஜ் // Feb 17, 2004 at 1:02 am

    Pari, encoding Unicode should have worked. Don’t know why. Comments section needs some work. I had to copy/paste your TSCII to wordpad to see also (w/thenee font).

  • 3 காசி // Feb 17, 2004 at 1:02 am

    யுனிகோடும் கடவுளும் ஒன்று. புரிந்தமாதிரியும் இருக்கிறது, இன்னும் தெளியாமலும் இருக்கிறது