content top

Why did Unicode born?



ကွန်ပျူတာတွင် ယူနီကုဒ်သည် ကမ္ဘာ​ေပါ်ရှိ စာ​ေရး​စနစ် (writting system) အား​လံုး​နီး​ပါး​ ပါရှိြပီး​ ကွန်ပျူတာများ​နှင့​် လုိက်​ေရာညီ​ေထွ ရှိ​ေစ​ေရး​အတွက် သက်မှတ်ထား​​ေသာ စက်မှုစံ (industry standard) တစ်ခုြဖစ်သည်။ Universal Character Set စံ နှင်အတူ ယူနီကုဒ်စံ သည် အက္ခရာ​ေပါင်း​ ၁၀၀ ၀၀၀ ​ေကျာ်ပါ​ေသာ စာအုပ် ထုတ်​ေဝခဲ့​သည်။

ထုိစံစာအုပ်တွင် ကုိး​ကား​ရန် ဇယား​များ​၊ encoding နည်း​စဥ်များ​၊ character encoding စံများ​၊ အက္ခရာ၏ သ​ေဘာသဘာဝများ​ (ဥပမာ စာလံုး​ြကီး​၊ စာလံုး​​ေသး​)၊ အ​ေထာက်အကူြပု computer file များ​၊ အြခား​ သက်ဆုိင်ရာများ​ (အက္ခရာသ​ေဘာ၊ normalization ဥပ​ေဒ၊ ခဲွြခင်း​၊ ​ေပါင်း​ြခင်း​၊ rendering နှင် နှစ်ဖက်သွား​ စာများ​၏ အစဥ်၊ ဘယ်ညာ သ​ေဘာများ​၊ စသည့​်) ပါရှိသည်။

အြမတ်မယူ အသင်း​အဖွဲ့​ ြဖစ်​ေသာ Unicode Consortium သည် ယူနီကုဒ် ရှင်သန်တုိး​တက်​ေရး​အတွက် ြကိုး​စား​မှုတွင် ရှိြပီး​ character encoding အား​လံုး​ကုိ ယူနီကုဒ် ြဖင့​်အစား​ထုိး​သွား​ရန် ရည်ရွယ်သည်။ ယူနီကုဒ် ၏ Unicode Transformation Format (UTF) scheme များ​တွင် ရှိြပီး​ encoding နည်း​များ​သည် ဘာသာစံု (multilingual) အတွက် လုိအပ်လျက်ရှိသည်။

ဘာသာစံု ပါဝင်​ေသာ ယူနီကုဒ် ၏ ​ေအာင်ြမင်မှု​ေြကာင့​် computer software ကုိ internationalization and localization လုပ်ရာတွင် များ​စွာ အသံုး​ချလျက်ရှိသည်။ ယူနီကုဒ်စံစနစ်ကုိ ယခု ​ေပါ်​ေပါက်​ေန​ေသာ XML၊ Java programming language၊ Microsoft .NET Framework နှင့​် ​ေခတ်​ေပါ် operating system များ​တွင် အသံုး​ချလျက်ရှိသည်။

ယူနီကုဒ်စံစနစ်ကုိ အသံုး​ြပုရာတွင် character encoding မျုိး​စံု အသံုး​ြပုနုိင်သည်။ အသံုး​အများ​ဆံုး​မှာ UTF-8 (1 byte ကုိ ASCII အက္ခရာ အတွက် နှင့​် ၄ byte အထိ ကျန် ​ေနများ​ကုိ အြခား​ အက္ခရာ အတွက်)၊ မသံုး​​ေတာ့​​ေသာ UCS-2 (2 bytes ကုိ အက္ခရာ အား​လံုး​အတွက် သုိ့​​ေသာ် ယူနီကုဒ် အက္ခရာ အား​လံုး​မပါ) နှင့​် UTF-16 (၄ bytes သံုး​ြပီး​ UCS-2 ကုိ ထက်ဆင့​်၍ ကျန်ရှိ​ေန​ေသး​​ေသာ ယူနီကုဒ် အက္ခရာ များ​ကုိ ထည့​်သွင်း​) ြဖစ်ြကသည်။

အစဦး​ နှင့​် တုိး​တက်​ေြပာင်း​လဲြခင်း​

ယူနီကုဒ်သည် ​ေရှး​ရုိး​ သံုး​လာခဲ့​ြက​ေသာ စာလံုး​ သိမ်း​ဆည်း​ပံု (character encoding) များ​၊ ISO 8859 စံ များ​ ကုိ ကျယ်ကျယ်ြပန့်​ြပန့်​ သတ်မှတ်လုိသည်။ ISO 8859 စံ သည် နုိင်ငံ​ေပါင်း​များ​စွာ၏ အသံုး​အနှုန်း​များ​ ကုိ သတ်မှတ်နုိင်ခဲ့​​ေသာ်လည်း​ တစ်ခုနှင့​်တစ်ခု ​ေြပာင်း​လဲ၍ (incompatible) သံုး​နှုန်း​မရ​ေပ။ များ​စွာ​ေသာ ​ေရှး​ရုိး​ရာ စာလံုး​ သိမ်း​ဆည်း​ပံု၏ ​ေတွ့​​ေနကျ ြပသနာမှာ ဘာသာနှစ်မျုိး​ ရရန် ြပုလုပ်ြခင်း​ (များ​​ေသာအား​ြဖင့​် Roman characters နှင် ​ေဒသစာ) တွင် ဘာသာမျုိး​စံု အတွက်မပါ​ေပ။

ယူနီကုဒ်သည် သ​ေဘာအား​ြဖင့​် စာလံုး​ပံု (glyph) များ​ကုိ ထက် အ​ေြခခံ စာလံုး​ (character) များ​ — graphemes and grapheme-like units — ကုိ သိမ်း​ဆည်း​ထား​သည်။ တရုတ်စာတွင် အ​ေြခခံ စာလံုး​ နှင် စာလံုး​ပံု တုိ့​ကုိခဲွြခား​ရန် ခက်ခဲသည်။

စာများ​ကုိ တွက်ချက်ြခင်း​ (text processing) တွင် ယူနီကုဒ်သည် စာလံုး​တုိင်း​အတွက် အတုမရှိ​ေသာ စာခွက် (code point) — စာလံုး​ပံု အစား​ နံပါတ်တစ်ခု — ရှိ​ေရး​ တာဝန်ယူသည်။ တစ်နည်း​အား​ြဖင့​် ယူနီကုဒ်သည် စာလံုး​များ​ကုိ မူရင်း​သဘာဝ (an abstract way) ကုိကုိယ်စား​ြပုြပီး​ ပံု​ေဖာ်ရန် အတွက်ကုိမူ (အရွယ်၊ ပံု၊ ​ေဖာင့​် (သုိ့​) သဏ္ဍာန်) software (web browser, word processor) ၏တာဝန်အြဖစ် ချန်ထား​ခဲ့​သည်။ ထုိမှျရှင်း​လင်း​​ေသာ ြကိုး​စား​မှုပင် ရှုပ်​ေထွး​ရ​ေသာ အ​ေြကာင်း​မှာ ယူနီကုဒ် ဒီဇုိင်း​ြပုသူများ​ ယူနီကုဒ် ကျယ်ြပန့်​စွာ အသံုး​ြပု​ေရး​ ြကိုး​ပမ်း​မှုတွင် သ​ေဘာတူညီမှု မရနုိင်ြခင်း​တုိ့​​ေြကာင့​်ြဖစ်သည်။

ယူနီကုဒ်၏ ပဋ္ဌမ ၂၅၆ လံုး​မှာ ISO 8859-1 နှင့​် တူ​ေသာ​ေြကာင့​် ရှိြပီး​ အ​ေနာက်နုိင်ငံမှ စာများ​အတွက် အခက်အခဲ မရှိ​ေပ။ များ​စွာ​ေသာ အတူတူ စာလံုး​များ​ကုိ မတူ​ေသာ စာခွက်များ​တွင် သက်မှတ်ြခင်း​မှာ ရှိြပီး​ စာလံုး​ သိမ်း​ဆည်း​ပံု နှင့​် အဆင်​ေြပ​ေစရန် ြဖစ်သည်။ ထုိ့​​ေြကာင့​် ရှိြပီး​စာ များ​မှ ယူနီကုဒ်ကုိ ​ေြပာင်း​ရာတွင် မှား​ယံင်း​မှု မရှိနုိင်​ေပ။

သမုိင်း​ြမန်မာယူနီကုဒ်

ယူနီကုဒ်၊ ယူနီကုဒ်နဲ့​ လူ​ေတွက​ေတာ့​​ေြပာ​ေနြကတယ်။ ​ေြပာ​ေနတဲ့​သူတိုင်း​က​ေရာ ယူနီကုဒ်ဆိုတာဘာလဲဆိုတာအ​ေသအချာ ရှင်း​ရှင်း​လင်း​လင်း​ သိချင်မှသိြကလိမ့်​မယ်။ ယူနီကုဒ်ဆိုတာကို ​ေနာက်မှ​ေပါက်တဲ့​​ေရွှြကာပင်ရယ်လို့​သ​ေဘာထား​ြပီး​ မသံုး​ချင်ြက​ေသး​တဲ့​ သူ​ေတွလည်း​ရှိချင်ရှိမယ်။
ဘာပဲြဖစ်ြဖစ်​ေပါ့​​ေလ…
- ြမန်မာယူနီကုဒ်ဆိုတာဘာလဲ
- ယူနီကုဒ်ကဘာ​ေတွပိုအသံုး​၀င်မှာလဲ
- အရင်တုန်း​ကသံုး​​ေနတာနဲ့​ဘာကွာလို့​​ေြပာင်း​သံုး​​ေနြကတာလဲ
အစရှိတဲ့​အ​ေြခခံ​ေမး​ခွန်း​​ေလး​​ေတွကိုအရင်ရှင်း​သွား​​ေအာင်​ေြပာချင်ပါတယ်။

ASCII Font အ​ေြကာင်း​
ြမန်မာနိုင်ငံမှာကွန်ပျူတာ​ေတွကို သံုး​ြက​ေတာ့​ကွန်ပျူတာမှာInternational Language ြဖစ်တဲ့​English ကိုပဲသံုး​​ေနရာက​ေန ကိုယ့်​နိုင်ငံအတွက် ကိုယ့်​စာ​ေတွကို ကွန်ပျူတာမှာ ြမင်ချင်လာြကတယ်။ အဲဒီအချိန်မှာ ကွန်ပျူတာမှာ သံုး​​ေနြကတာ Latin စာ​ေတွ​ေလ။ အဲဒီ Latin စာ​ေတွကိုကွန်ပျူတာထဲမှာ ASCII (American Standard Code for Information Interchange) စနစ်ကိုသံုး​ြပီး​သိမ်း​တယ်။ သူတို့​ Latin စာအတွက် ကုဒ်​ေတွ သတ်မှတ်ထား​​ေပမယ့်​ ြမန်မာစာအတွက်က ကုဒ်မှမသတ်မှတ်ထား​​ေသး​တာ။ ကုဒ်မရှိလဲ ြမန်မာစာြမင်ချင်​ေတာ့​ ခုနက​ေြပာတဲ့​ Latin စာ​ေတွသိမ်း​တဲ့​ ASCII စနစ်ကိုပဲသံုး​ရ​ေတာ့​တယ်။ အဲဒီလိုနဲ့​ပဲ ASCII စနစ်ကိုသံုး​တဲ့​ ြမန်မာစာ စာလံုး​စနစ် (Font) ​ေတွကို တီထွင်လာြကတယ်။ ၁၉၉၂ အ​ေစာပိုင်း​မှာ “Shwe and Mya” လို့​​ေခါ်တဲ့​ ပထမဆံုး​ြမန်မာစာ Font ကိုတီထွင်ထုတ်လုပ်ခဲ့​တယ်။ ြမန်မာစာကို် ြမင်ရ​ေသာ်လည်း​ ကွန်ပျူတာက အမှန်တကယ်သိသည်မှာ Latin စာ​ေတွပဲြဖစ်​ေနတယ်။ ဥပမာ Win Font မှာဆိုရင် “က” ဟုြမင်​ေနရ​ေသာ်လည်း​ ကွန်ပျူတာက Latin စာ ‘u’ ကိုသာ သိမ်း​ထား​ြခင်း​ြဖစ်တယ်။

ြပဿနာ

ြမန်မာစာ ASCII Font ​ေတွရဲ့​အဓိကြပဿနာက​ေတာ့​ စာရိုက်စဉ်ကအသံုး​ထား​​ေသာ font အမျိုး​အစား​မရှိ​ေသာ ကွန်ပျူတာတွင် ြပန်ဖွင့်​ြကည့်​လှျင် Latin စာများ​သာြမင်ရြခင်း​ ြဖစ်သည်။ ဥပမာ- Win Font အသံုး​ြပု၍စာရိုက်ထား​​ေသာ ဖိုင်တစ်ခုကို Win Font မရှိ​ေသာ ကွန်ပျူတာတွင်ဖွင့်​ြကည့်​လှျင် abc…d (Latin) စာများ​သာြမင်ရမည်ြဖစ်သည်။ ထိုစက်တွင် Win Font မရှိ​ေသာ်လည်း​ ASCII Font တစ်ခုြဖစ်သည့်​ Academy Font ရှိ၍ ထို Academy နှင့်​ြပန်ဖွင့်​ြကည့်​လှျင် ြမန်မာစာများ​ကို​ေတာ့​ ြမင်နိုင်ပါမည်။ သို့​​ေသာ် မှန်ကန်စွာ ြပန်ြမင်နိုင်​ေတာ့​မည် မဟုတ်​ေပ။ ဥပမာ- Win Font တွင် ‘က’ သည် ‘u’ ​ေနရာတွင် ထား​​ေသာ်လည်း​ Academy Font တွင် ‘u’ ဟူ​ေသာ Latin စာ​ေနရာတွင် ‘ယ’ ထား​​ေသာ​ေြကာင့်​ Win Font တွင်ရိုက်တား​​ေသာ ‘က’ ​ေနရာများ​တွင် Academy Font ​ေြပာင်း​​ေသာအခါ ‘ယ’ များ​အြဖစ်​ေြပာင်း​လဲသွား​​ေသာ​ေြကာင့်​ အမှန်ကို ြမင်နိုင်​ေတာ့​မည် မဟုတ်​ေချ။
ထိုသို့​ြပဿနာမျိုး​များ​ ြဖစ်ရြခင်း​မှာ စာလံုး​စနစ်သိမ်း​ရာတွင် တိကျ​ေသာ စံသတ်မှတ်ချက်မရှိြခင်း​​ေြကာင့်​ ြဖစ်သည်။ ဥပမာ- ‘က’ ဟူ​ေသာစာလံုး​တစ်ခုသည် Latin စာ ‘u’ ​ေနရာတွင်သာြဖစ်သည်ဟူ​ေသာ သတ်မှတ်ချက်မျိုး​မရှိခဲ့​​ေပ။

ASCII စနစ်ကိုသံုး​ြခင်း​၏ အဓိက၀မ်း​နည်း​စရာအ​ေကာင်း​ဆံုး​အချက်မှာ ကိုယ်ပိုင်စနစ် မရှိြခင်း​​ေြကာင့်​၊ သူများ​စနစ်ကို အငှား​သံုး​ထား​ရြခင်း​ပင်ြဖစ်သည်။ ‘က’ ဟုြမင်​ေနရ​ေသာ်လည်း​ ကွန်ပျူတာက ‘u’ ဟုသာသိ​ေနြခင်း​ြဖစ်သည်။

ထို့​​ေနာက် ြမန်မာစာအတွက် ကိုယ်ပိုင်ကုဒ်စနစ်တစ်ခုရရှိရန် ြကိုး​ပမ်း​ြကရာ ‘Unicode’ ဟု​ေခါ်​ေသာစနစ်ကို ရှာ​ေဖွ​ေတွ့​ရှိခဲ့​သည်။ထို ‘Unicode’ စနစ်ဆိုသည်မှာ တစ်ကမာ္ဘလံုး​တွင် ရှိ​ေသာ ဘာသာစကား​တိုင်း​အတွက် ကိုယ်ပိုင်​ေနရာများ​ သတ်မှတ်​ေပး​​ေသာ စနစ်ြဖစ်သည်။ ထို Unicode စနစ်တွင်ြမန်မာစာပါရှိ​ေရး​အတွက် ြကိုး​ပမ်း​ြကရာ (၁၉၉၈) ခုနှစ်တွင် ြမန်မာနိုင်ငံအတွက် ကုဒ်​ေနရာ​ေပါင်း​ ( ၁၆၀ ) (1000 မှ -109F အထိ )​ေနရာရရိှလာခဲ့​သည်။

ြမန်မာယူနီကုဒ် အ​ေြကာင်း​

‘Unicode’ စနစ်တွင် ဗမာစာအတွက် ကိုယ်ပိုင်​ေနရာတစ်ခု ရရှိလာြပီး​​ေနာက် ထိုစနစ်ကို အသံုး​ြပု၍ Unicode Font များ​ကိုထုတ်လုပ်လာြကပါသည်။ Unicode စနစ်တွင် အက္ခရာတစ်ခုစီအတွက် သီး​သန့်​ကုဒ်တစ်ခုရှိသည်။ ဥပမာ- ‘က’ သည် ‘Unicode’ စနစ်တွင် ‘1000’ ဟူ​ေသာ ​ေနရာတွင်ရှိသည်။ Unicode စနစ်ကိုသံုး​ထား​​ေသာ မည်သည့်​ Font တွင်မဆို ‘က’ သည် ကုဒ် ‘1000’ သာြဖစ်​ေနသည်။
‘Unicode’ စနစ်တွင် ဗမာစာ၏ အဓိကအ​ေြခခံအက္ခရာများ​ကိုသာ ကိုယ်ပိုင်ကုဒ် သတ်မှတ်​ေပး​ထား​ြခင်း​ ြဖစ်သည်။ ASCII စနစ်နှင့်​ ကွာြခား​ချက်မှာ ASCII စနစ်တွင် ( ု) သည် အတိုနှင့်​ အရှည် ( ု ) နှစ်မျိုး​လံုး​အတွက် ကုဒ်တစ်ခုစီအသံုး​ြပုထား​​ေသာ်လည်း​၊ ‘Unicode’ စနစ်တွင်မူ ‘ ု’ သည် “102F” ဟူ​ေသာ ကုဒ် ၁ ခုတွင်သာ ရှိ​ေနမည်ြဖစ်ြပီး​ ကီး​ဘုတ်တွင်လည်း​ ‘Key’ ၁ခုတွင်သာရှိ​ေန​ေပမည်။ ထိုအခါ စာရိုက်သူက ‘ ု’ လိုချင်​ေသာအခါ မည်သို့​ြပုလုပ်ရမည်နည်း​ ဆိုလှျင် မည်သို့​မှျြပုလုပ်ရန် မလိုပါ။ ‘ ု’ သည် ‘K’ key တွင် ရှိသည်ဆိုလှျင် စာရိုက်သူသည် ‘ ု’ လိုချင်သည်ြဖစ်​ေစ၊ ‘ ု ’ လိုချင်သည်ြဖစ်​ေစ ထို ‘K’ key ၁ခုကိုသာ နှိပ်ရန်မှတ်သား​ထား​ရပါမည်။ ထိုသို့​ ‘ ု’ / ‘ ု ’ ​ေြပာင်း​လဲြခင်း​ကို ထိုသရနှင့်​တွဲ​ေသာ အက္ခရာ​ေပါ်မူတည်၍ ဗမာစာ​ေရး​နည်း​စနစ်အတိုင်း​ ​ေြပာင်း​လဲရမည့်​ပံုစံကို ​ေြပာင်း​လဲြခင်း​ကို ‘Rendering Engine’ လုပ်​ေဆာင်​ေပး​ပါလိမ့်​မည်။ ထို ‘Rendering’ သည် ‘Unicode’ ၏ စံသတ်မှတ်ချက်ကို လိုက်နာထား​​ေသာ Unicode Font များ​တွင် တစ်ပါတည်း​ပါရှိမည်ြဖစ်သည်။


ယူနီကုဒ် သမုိင်း​ကုိ ၁၉၈၇ ခု Xerox မှ Joe Becker နှင့​် Apple မှ Lee Collins and Mark Davis တုိ့​က အြပည်ြပည်ဆုိင်ရာ စာလံုး​ စနစ် ြဖစ်နုိင်​ေြခကုိ စတင် စူး​စမ်း​ခဲ့​သည်။ ထုိနှစ် ြသဂုတ်လတွင် Joe Becker သည်
international/multilingual text character encoding system, tentatively called Unicode.


စာတမ်း​ကုိ ထုတ်​ေဝခဲ့​သည်။ Unicode 88 ​ေခါင်း​စဥ်ရှိ​ေသာ ထုိစာတန်း​၏ ၁၆ ဘစ် (bit) အ​ေြခြပု စာလံုး​ မုိဒယ်တွင် Unicode is intended to address the need for a workable, reliable world text encoding. Unicode could be roughly described as "wide-body ASCII" that has been stretched to 16 bits to encompass the characters of all the world's living languages. In a properly engineered design, 16 bits per character are more than sufficient for this purpose.ဟု​ေဖါ်ြပခဲ့​သည်။ မူလ ၁၆ ဘစ် (bit) အ​ေြခြပု စာလံုး​ မုိဒယ်သည် ယခု သံုး​စွဲ​ေန​ေသာ စာ​ေရး​စနစ် များ​ကုိသာ စဥ်း​စား​ခဲ့​သည်။ သုိ့​​ေသာ

ယခုသံုး​​ေန​ေသာ စာလံုး​များ​မှာ

Unicode gives higher priority to ensuring utility for the future than to preserving past antiquities. Unicode aims in the first instance at the characters published in modern text (e.g. in the union of all newspapers and magazines printed in the world in 1988), whose number is undoubtedly far below 214 = 16,384. Beyond those modern-use characters, all others may be defined to be obsolete or rare; these are better candidates for private-use registration than for congesting the public list of generally-useful Unicodes.

ဟု သံုး​သပ်ခဲ့​သည်။ ဆုိလုိသည်မှာ ​ေရှး​စာနှင့​် အသံုး​များ​​ေသာ စာလံုး​များ​ပါ ယူနီကုဒ် တွင် ပါဝင်ရန်လုိအပ်ခဲ့​သည်။

သဲသဲ​ေအး​ (http://thetheaye.my-mm.org/)

1 comments:

Swiss Ball Exercises said...

Thanks for an idea, you sparked at thought from a angle I hadn’t given thoguht to yet. Now lets see if I can do something with it.

Post a Comment

 

content top