ကျွန်တော့်လေ့လာမိသမျှ ယူနီကုဒ်အကြောင်း

ယူနီကုဒ်ဆိုတာ ဘာလဲ

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

What is Unicode? 
Unicode provides a unique number for every character,
no matter what the platform,
no matter what the program,
no matter what the language.

အပေါ်က စာသားလေးကတော့ ယူနီကုဒ်ဆိုတာ ဘာလဲဆိုတဲ့ အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကို Unicode.ORG မှာ ရေးထားတဲ့ စာသားလေးပါ။ ယူနီကုဒ်ဆိုတာ ဘာလဲ၊ ယူနီကုဒ်ဆိုတာ ဘယ်လို ပလက်ဖောင်း (Windows, Mac, Linux စသည်) ဖြစ်စေ၊ ဘယ်လို ပရိုဂရမ် (Word, Excel စသည်) ဖြစ်စေ၊ ဘယ်လို ဘာသာစကားဖြစ်စေ စကားလုံးအားလုံးအတွက် တိကျတဲ့၊ တစ်လုံးကို အမှတ်စဉ်တစ်ခု ကိုယ်စားပြုတဲ့ (Unique ဖြစ်တဲ့) အမှတ်စဉ် (Number) တွေ သတ်မှတ်ပေးတာပါ လို့ ရေးထားပါတယ်။

အဲဒီလိုနေရာချထားပေးထားတဲ့ အမှတ်စဉ်၊ သတ်မှတ်ပေးထားတဲ့ ဘာသာစကားပေါင်း ယခုလက်ရှိမှာ ၉၃ မျိုး ရှိနေပြီဖြစ်ပြီး Character ပေါင်း ၁၀၉၀၀၀ လုံးအထိ နေရာသတ်မှတ်ပြီး ဖြစ်ပါတယ်။ အဲဒီလို ယူနီကုဒ် စံ စနစ်ကို ၄.၀ ကနေ ၅.၀ နောက် ၅.၁၊ ၅.၂ ခုနောက်ဆုံးမှာ ၆.၀ အထိ ရောက်ရှိခဲ့ပြီ ဖြစ်ပါတယ်။

အဲဒီ Unicode စံတွေကို သတ်မှတ်ပေးနေတဲ့ အဖွဲ့အစည်းကို Unicode Consortium လို့ခေါ်ပြီး ISO လို့ခေါ်တဲ့ နိုင်ငံတကာ စံနှုန်း သတ်မှတ်ရေး အဖွဲ့တွေနဲ့ ပူးပေါင်းဆောင်ရွက်နေတဲ့ အဖွဲ့တစ်ခု ဖြစ်ပါတယ်။ အဲဒီအပြင် Supporter တွေ အနေနဲ့ Microsoft, Apple, HP, IBM, JustSystems, Sun, Oracle အစရှိတဲ့ နည်းပညာ ကုမ္ပဏီကြီးတွေ ပါဝင်ပါတယ်။ အဲဒီအပြင် ISO/IEC 10646 ဆိုတဲ့ ISO Standard လည်း ရပြီးဖြစ်ပါတယ်။ (ဒီတော့ ကျွန်တော်တို့ မြန်မာယူနီကုဒ်ဟာ ISO/IEC 10646 လက်မှတ်ရပြီး ဖြစ်တယ်လို့ ဆိုနိုင်ပါတယ်။ အဲဒီအပြင် နိုင်ငံတော်အဆင့် စံစနစ်သတ်မှတ်ချက်အရ မဖြစ်မနေ ပြောင်းလဲရမယ့် စံနှုန်းအဖြစ်လဲ သတ်မှတ်ပြီး ဖြစ်ပါတယ်)

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

အဲဒီလို မှတ်သားတဲ့ စနစ်ကို Encoding Method (ကွန်ပျူတာ နားလည်သည့် စနစ်ကို ပြောင်းလဲသည့် နည်းလမ်း) လို့ခေါ်ပါတယ်။ အစပိုင်းမှာတုန်းကတော့ “တစ်ကြောင်းတဂါထာ၊ တစ်ရွာ တစ်ပုဒ်ဆန်း” ဆိုသလို ဥရောပကလည်း ဥရောပနည်း၊ အမေရိကကလည်း အမေရိကနည်း စသည်ဖြင့် Encoding စနစ်တွေကို သတ်မှတ်ခဲ့ကြပါတယ်။ အင်္ဂလိပ်စာ တစ်ခုတည်းမှာတင် ဘာသာစကားတစ်ခုတည်း ဖြစ်ပေမယ့် encoding method ကို တစ်ခုတည်း သုံးလို့မရတဲ့ အခြေအနေဖြစ်လာပါတယ်။

အဲဒီလို သတ်မှတ်ကြရင် Encoding စနစ်တွေ တစ်ခုနဲ့ တစ်ခု Conflict (ပဋိပက္ခ) ဖြစ်လာပါတယ်။ ဘယ်လို ပဋိပက္ခမျိုးလဲဆိုရင် encoding method နှစ်ခုဟာ မတူညီတဲ့ စကားလုံးနှစ်ခုကို တူညီတဲ့ အမှတ်စဉ်တွေမှာ သုံးလာကြတာပါ။ အဲဒီလိုဆိုတော့ ဥပမာ အနေနဲ့ ပြောရမယ် ဆိုရင် တစ်ဖက်က encoding method မှာ အမှတ်စဉ် ၁၀ က ‘က’ ဆိုပါစို့၊ နောက်ထပ် encoding method ရဲ့ အမှတ်စဉ် ၁၀ မှာ ‘ခ’ ဖြစ်နေတာမျိုးပါ။ 

အဲဒီလို encoding method တွေ ကွဲပြားခြားနားလာတဲ့အတွက် Database, Server, အစရှိတဲ့ စက်တွေဟာ encoding method မျိုးစုံကို အထောက်အပံ့ပေးနိုင်ဖို့ လိုအပ်လာခဲ့ပါတယ်။ အထောက်အပံ့ ပေးနိုင်တယ်ထားဦး encoding method မတူညီတဲ့ platform နှစ်ခုကြားမှာ အချက်အလက်တွေ ပေးပို့တဲ့အခါ အမှားအယွင်းတွေ၊ အချက်အလက် ပျောက်ရှမှုတွေ ဖြစ်ပေါ်လာပါတယ်။ ဥပမာ နားလည်အောင် ပြောရရင် တစ်ဖက်က Aung Aung လို့ ပြောတာကို တစ်ဖက်က Bung Bung လို့ နားလည်သွားတာမျိုးပါ။

Unicode ဘာကြောင့်လိုလဲ? ဘယ်လို အကျိုးကျေးဇူးတွေ ရမလဲ?

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

ဒါပေမယ့် အဲဒီ တစ်ဆယ်သားတို့ တစ်ပိဿာတို့ဆိုတာ Local Standard တွေပါ၊ ဆီတစ်ပိဿာကို ယိုးဒယားမှာ သွားရောင်းမယ်ဆိုရင် ယိုးဒယားရဲ့ အချိန်အတွယ် စံစနစ်ကို သုံးရပါတော့မယ်၊ အဲဒီလိုသာ နိုင်ငံတိုင်းမှာသွားပြီး ဆီတစ်ပိဿာကို သွားရောင်းမယ်ဆိုရင် သူနေရာနဲ့သူ သူ့နိုင်ငံနဲ့သူ အချိန်အတွယ်တွေ အမျိုးကွဲပြားပါတော့မယ်။ 

အဲဒီအတွက် နိုင်ငံတကာကို ရောင်းနိုင်ဖို့အတွက် နိုင်ငံတကာ အချိန်အတွယ် စနစ်တစ်ခု လိုလာပါတယ်။ အဲဒါလည်း စံ (Standard) ပါပဲ။ ဒါပေမယ့် သူကတော့ Global Standard ဖြစ်သွားပါပြီ။ ဒီတော့ ဒီလို စံတွေအားလုံးဟာ လိုအပ်ချက်ကြောင့် ထွက်ပေါ်လာရတာတွေပဲ ဖြစ်ပါတယ်။ ဒီတော့ ယူနီကုဒ်ကို ဘာကြောင့် လိုလဲဆိုတော့ လိုအပ်ချက်ကြောင့်ပဲလို့ ဖြေရပါလိမ့်မယ်။

ဒီနေရာမှာ Local Standard နဲ့ သွားလို့ မရဘူးလားလို့ မေးစရာရှိပါတယ်။ တစ်ခြား ကဏ္ဍတွေမှာလည်း သွားနေကြတာ အများကြီးပါ။ ဟုတ်ပါတယ်။ သွားလို့ရပါတယ်။ ဒါပေမယ့်သူက ကန့်သတ်ချက် တစ်ခု ရှိနေပါလိမ့်မယ်။ ကျွန်တော် အပေါ်မှာ ပြောခဲ့သလို ပြည်တွင်းမှာပဲ ရောင်းလို့ ရပါလိမ့်မယ်။ နိုင်ငံတကာ သွားချင်ရင်တော့ နိုင်ငံတကာ စံနှုန်းအတိုင်း လိုက်နာရပါလိမ့်မယ်။ မဟုတ်ရင် နိုင်ငံတကာမှာ သွားရောင်းလို့ ရမှာမဟုတ်ပါဘူး။ 

ဒီတော့ ရှေ့ဆက်ပြီး မေးနိုင်ပါသေးတယ်။ ဘာသာစကားဆိုတာ Local ပဲ မဟုတ်ဘူးလား။ ကိုယ့်ဟာကို ဘယ်လိုပဲ သုံးသုံးပေါ့လို့ စေတက တက်နိုင်ပါတယ်။ ဒါဆိုရင် ကိုယ့်ဘာသာစကားဟာ နိုင်ငံတကာနဲ့ ရင်ဘောင်တန်းနိုင်တဲ့ နိုင်ငံတကာက အသိအမှတ်ပြုတဲ့ ဘာသာစကား ဖြစ်လာမှာ မဟုတ်တော့ပါဘူး။ (ကျွန်တော်ပြောတာ ကွန်ပျူတာ ပေါ်မှာ ပြောတာပါ)

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

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

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

Myanmar Unicode (မြန်မာစာ ယူနီကုဒ်) စနစ်ကို လေ့လာကြည့်ရအောင်

Unicode Code Point

ကျွန်တော်တို့ မြန်မာစာတွေအတွက် သတ်မှတ်ပေးထားတဲ့ နေရာတွေကို သိချင်တယ်ဆိုရင် အောက်ကလင့်ခ်တွေမှာ သွားကြည့်နိုင်ပါတယ်။ အဲဒါက နောက်ဆုံး Unicode Standard 6.0 မှာ ပါဝင်တဲ့ မြန်မာစာအတွက် နေရာတွေပါ။

အဲဒီနေရာတွေမှာ သွားကြည့်လိုက်မယ်ဆိုရင် ဗမာ၊ ပါဋ္ဌိ၊ မွန်၊ ကရင်၊ ကယား၊ ရှမ်း၊ ပလောင် စသည်ဖြင့် ဗမာစကားနဲ့ ပုံစံတူတဲ့ အနေအထား အားလုံးအတွက် နေရာတွေ ရှိပြီး ဖြစ်တာ တွေ့ရပါလိမ့်မယ်။ ပထမ Chart ဟာ Unicode Standard 5.2 ကတည်းက Chart ဖြစ်ပြီး နောက်တစ်ခုကတော့ Extended ပါ။ ပြောရရင် ၆.၀ မှာ ထပ်တိုးလာတာတွေမှာ အဲဒီလို ထပ်တိုးလာတာသာရှိပြီး နဂိုဟာတွေ အပြောင်းအလဲ မရှိတော့ပါဘူး။ ဒါကြောင့် ယူနီကုဒ်တွေ မငြိမ်ဘူးဆိုတာ မဟုတ်ပဲ၊ အခြား လိုအပ်တာတွေသာ ထပ်တိုးလာခြင်း ဖြစ်တယ်ဆိုတာ တွေ့ရပါ လိမ့်မယ်။

အဲဒီအပြင် အစီအစဉ်တွေကို လေ့လာကြည့်မယ် ဆိုရင်လည်း ဗျည်း (Letter) တွေက အရေးအကြီးဆုံး ဖြစ်တဲ့အတွက် ထိပ်ဆုံးမှာ စီထားတာ တွေ့ရပါလိမ့်မယ်။ က အတွက် အမှတ်စဉ် 1000 ပေါ့၊ ခ အတွက် 1001 စသည်ဖြင့်ပေါ့။ ဗျည်း အစီအစဉ်တွေရဲ့ သရ (Dependent Vowels) တွေ ဖြစ်တဲ့ မောက်ချ၊ ရေးချ၊ လုံးကြီးတင်၊ လုံးကြီးတင်ဆန်ခတ် စသည် ဖြစ်လာပါတယ်။ အဲဒီလို စီစဉ်ထားတာကို Logical Order လို့ခေါ်ပါတယ်။ အချက်အလက်တွေ အဖြစ့် သိမ်းဆည်းမယ်ဆိုရင်လည်း အဲဒီအစီအစဉ်အတိုင်းသာ သိမ်းဆည်းရမှာ ဖြစ်ပါတယ်။ ဗျည်း၊ ဗျည်းတွဲ၊ သရ စသည်ဖြင့် အစီအစဉ်အတိုင်း သိမ်းဆည်းရမှာပါ။

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

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

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

Logical Order လား? Visual Order လား?

ကျွန်တော်တို့ စာလုံး (Character) တစ်လုံးခြင်းစီအတွက် နေရာတွေတော့ ရပြီ၊ အဲဒီနေရာတွေအတွက် အမှတ်စဉ် သတ်မှတ်ချက်တွေလည်း ရပြီ။ အဲဒါကို ဘယ်လိုသိမ်းမလဲ။ နားလည်အောင် ပြောရရင် ‘‘ကြောင်’’ ဆိုတဲ့စကားလုံးကို ဘယ်လိုသိမ်းမလဲပေါ့။ Visual Order အတိုင်း သိမ်းမယ်ဆိုရင်  သဝေထိုး +​ ရရစ် + က + ရေးချ + င + အသတ် လို့ သိမ်းရမှာပါ။

စာလုံးတစ်လုံးခြင်းစီ ကိုယ်စားပြုတဲ့ အမှတ်စဉ်တွေ အရဆိုရင် သဝေထိုးပြီး ရှေ့ရောက် နေတဲ့ သဝေထိုး က စရမှာ ဆိုတော့ 1031 103C 1000 102C 1004 103A ဆိုပြီး သိမ်းရမှာပါ။ Logical Order အတိုင်းသိမ်းမယ် ဆိုရင်တော့ က +  ရရစ် +  သဝေထိုး +  ရေးချ + င +  အသတ် ဆိုပြီး မှတ်ရမှာ ဖြစ်ပါတယ်။ သိမ်းမယ်ဆိုရင်လည်း 1000 103C 1031 102C 1004 103A ဆိုပြီး သိမ်းရပါမယ်။

အဲဒီ ပုံစံနှစ်ခုမှာ တကယ့်မင်းသားကြီး ဖြစ်တဲ့ ကကြီးဟာ အပေါ်က Visual Order မှာ တတိယနေရာကို ရောက်နေပါတယ်။ အဲဒီအတွက် Sorting လုပ်တော့မယ်ဆိုရင် ဒီစာလုံးမှာ အရေးအကြီးဆုံး ဗျည်းက ဘာလဲဆိုပြီး ရှာရပါတော့မယ်။ အောက်ဖက်က အစီအစဉ် (Order) မှာတော့ ရှာစရာ မလိုတော့ပါဘူး။ ထိပ်ဆုံးမှာ ပါနေပါတယ်။ 

အဲဒီအတွက် အရေးအကြီးဆုံး ဗျည်းကဘာလဲဆိုပြီး လိုက်ရှာနေရတဲ့ အဆင့်တစ်ခု လျော့သွား စေပါတယ်။ အဲဒီ အပြင် 1031 နဲ့ 103C ပါ။ အပေါ်နဲ့ အောက် အစီအစဉ် မတူပါဘူး။ 1031 က သဝေထိုး ဖြစ်ပြီး 103C ကတော့ ရရစ် ဖြစ်ပါတယ်။ အဲဒီနှစ်ခု ဘယ်သူက အရင်လာသင့်သလဲ၊ ပြောရင် သဝေထိုး ပါတာက အရင်လာသင့်သလား၊ ရရစ် ပါတာက အရင်လာသင့်သလား၊ စာလုံးပေါင်း သတ်ပုံကျမ်းကို ပြန်ကြည့်မယ်ဆိုရင် ရရစ် ပါတာက အရင်လာပါတယ်။ 

အဲဒီလိုပဲ Logical Order မှာ ကြည့်မယ်၊ Unicode ရဲ့ အစီအစဉ်မှာ ကြည့်မယ်ဆိုရင်လည်း ရရစ် က အရင်လာပါတယ်။ သဝေထိုး ကနောက်မှ လာပါတယ်။ အဲဒီအတွက် ရရစ် ပါတာကိုရှေ့ရောက်အောင် ထပ်စီရပါဦးမယ်။ ဒါကြောင့် Logical Order ဆိုတာ အကြောင်းမဲ့ စီထားတာ မဟုတ်ဘူးလို့ သိနိုင်ပါလိမ့်မယ်။ ဒါကြောင့် ရိုက်တဲ့ နေရာမှာ အရင်လာ၊ အရင်ရိုက် လုပ်လို့ရပေမယ့် တကယ်တန်း သိမ်းတဲ့အခါမှာတော့ Logical Order အတိုင်းသိမ်းတာ အကောင်းဆုံးပဲလို့ သတ်မှတ်ရပါလိမ့်မယ်။

Input Method

ကျွန်တော်တို့ အပေါ်မှာ ပြောခဲ့သလို နေရာ (အမှတ်စဉ်) လည်း ရှိပြီ၊ Logical Order အတိုင်းလည်း သိမ်းဖို့ သဘောတူတယ် ဆိုရုံနဲ့ မလုံလောက် သေးပါဘူး။ ကျွန်တော်တို့ ကွန်ပျူတာ ကီးဘုတ်ဆိုတာ A, B, C, D တွေနဲ့သာ လုပ်ထားတာပါ။ အဲဒီအတွက် အဲဒီကီးဘုတ်ကို အသုံးချပြီး ကျွန်တော်တို့ မြန်မာစာတွေကို ကွန်ပျူတာ နားလည်အောင် ထည့်ပေးရပါဦးမယ်။ 

အဲဒီလိုထည့်ပေးတဲ့ နည်းစနစ်ကို Input Method လို့ခေါ်ပြီး ရိုက်ထည့်ရမယ့် လက်ကွက်ကိုတော့ Keyboard Layout လို့ခေါ်ပါတယ်။ Input Method ကိုတော့ အသုံးပြုသူတွေ အနေနဲ့ Keyman, Keymagic အစရှိတဲ့ Unicode ရိုက်လို့ရတဲ့ စနစ်တွေအဖြစ် မြင်နိုင်ပါတယ်။  (ဘယ်လို Font တွေသုံးမယ်၊ ဘယ်လို Keyboard တွေ သုံးမယ်ဆိုတာ Unicode Today မှာ လေ့လာနိုင်ပါတယ်။)

တကယ်တမ်း သူတို့တွေ ဘာအလုပ် လုပ်ပေးသလဲလို့ မေးရင် ကိုယ့်ရဲ့ အင်္ဂလိပ်စာ ကွန်ပျူတာ ကီးဘုတ်ကို မြန်မာစာ ကီးဘုတ်အဖြစ် ပြောင်းပေးလိုက်တာပါပဲ။ အဲဒီအပြင် Input Method တွေဟာ Keyboard Layout ကိုလည်း အထောက်အပံ့ပေးရပြီး သိမ်းဆည်းတဲ့ နေရာမှာ ယူနီကုဒ်ဆိုရင် Logical Order နဲ့ ကွန်ပျူတာထဲကို ပြန်လည် သိမ်းဆည်းပေးရပါတယ်။

ကျွန်တော်တို့တွေ ရိုက်နေကြစနစ်က အရင်လာ၊ အရင်ရိုက်စနစ်ပဲ။ ဒီတော့ ယူနီကုဒ်သာ ပြောင်းသုံးရင် Logical Order အတိုင်းရိုက်ရမှာလား ဒါဆိုရင် ဘယ်လွယ်မလဲလို့ စဉ်းစားစရာ ရှိပါတယ်။ ခုချိန်မှာ ကြိုက်သလို ရိုက်နိုင်တဲ့ အနေအထားကို ရောက်နေပါပြီ။ ဝင်းအင်းဝ ပုံစံရိုက်မလား၊ Logical Order အတိုင်းရိုက်မလား၊ မိမိစိတ်ကြိုက် ရိုက်နိုင်ပါတယ်။ အဲဒီအတွက် စိုးရိမ်သောက ရောက်စရာ မရှိတော့ပါဘူး။

Unicode Font (ယူနီကုဒ် စနစ်သုံး မြန်မာစာဖောင့်)

အပေါ်မှာ ပြောခဲ့သမျှ အားလုံး တကယ်တမ်းပြောရရင် ဖောင့်နဲ့ ဘာမှကို မဆိုင်သေးပါဘူး။ အပေါ်မှာ ပြောခဲ့သမျှ အားလုံးဟာ ယူနီကုဒ် စနစ်အကြောင်းပါ၊ ဘယ်လို Font ပုံစံလာလာ၊ စားလုံးတိုင်းအတွက် နေရာတူတူ၊ သိမ်းဆည်းပုံ အတူတူပါပဲ။ ခုမှ တကယ့် User Interface လို့ခေါ်တဲ့ နေရာမှာမြင်ရမယ့် ဖောင့်တွေရဲ့ အခန်းကဏ္ဍပါ။ 

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

မြန်မာစာယူနီကုဒ်စံကို လိုက်နာတဲ့ဖောင့်တွေ အများကြီးပါပဲ။ ဒီနေရာမှာ လေ့လာကြည့်နိုင်ပါတယ်။

ဒီထက်ပိုပြီးလည်း များလာစရာ အကြောင်းတွေ ရှိနေပါသေးတယ်။ အသုံးများ တွင်ကျယ်လာတာနဲ့အမျှ Myanmar Unicode တွေမှာ ပုံစံမျိုးစုံ Typography တွေ ရလာမှာ ဖြစ်ပါတယ်။ 

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

Rendering

Font Rendering ဆိုတဲ့ အပိုင်းကတော့ Logical Order အတိုင်းရှိနေတဲ့ အချက်အလက်တွေကို ကွန်ပျူတာ ဖန်သားပြင်ပေါ်မှာ ပုံပေါ်လာအောင် လိုအပ်သလို ပြန်လည် စီစဉ်ပေးရမှာ ဖြစ်ပါတယ်။ ဝဆွဲ လို့တွေ့တဲ့အခါ ရရစ် ပါရင် အောက်ပိုင်းပြတ်နေတဲ့ ရရစ်နဲ့ အစားထိုး ပေးရပါမယ်။

အရှေ့မှာ သဝေထိုးပြီး ရောက်နေတဲ့ သဝေထိုး ကိုတွေ့ရင် အရှေ့ကို ပို့ပေးရပါမယ်။ အောက်ကမြင့်ကို တွေ့ရင် သင့်တော်သလို ရွေ့ပေးရ ပါတော့မယ့် အဲဒီလို Rendering ဆိုတဲ့ အလုပ်ကို OS တွေက လုပ်ကိုင် ဆောင်ရွက်ပေးပါတယ်။

Visual Order အတိုင်း စီထားတဲ့ ဖောင့်တွေအတွက် ပြဿနာ မရှိပေမယ့် Logical Order အတိုင်းစီတဲ့ ဖောင့်တွေအတွက်တော့ ပြဿနာရှိပါတယ်။ ဒါကြောင့် တစ်ချို့သော OS တွေမှာ မြန်မာစာ မမြင်ရ ဖြစ်နေတာပါ။ ဒါပေမယ့် Commercialized OS အကုန်လုံးနီးပါးမှာ Myanmar Unicode ကို Rendering လုပ်ပေးနိုင်တာ တွေ့ရပါတယ်။

ယူနီကုဒ်ကြောင့် ရလာနိုင်တဲ့ အခြားအကျိုးကျေးဇူးများ

ယူနီကုဒ်အကြောင်းကို ကျွန်တော်တို့ လေ့လာကြည့်တာ User Level လို့ခေါ်တဲ့ အဆင့်ကို အတန်အသင့်သိသွားပြီလို့ ဆိုနိုင်ပါတယ်။ အဓိက ရလာနိုင်တဲ့ အကျိုးကျေးဇူးတွေကိုလည်း သိသွားပြီးလို့ ဆိုနိုင်ပါတယ်။ အဲဒါတွေ အပြင် တစ်ခြား ဘယ်လို အကျိုးကျေးဇူးတွေ ရလာ နိုင်ပါသလဲ။ ဆက်ပြီး လေ့လာကြည့်ရအောင်။

သတ်ပုံအမှားနည်းသွားခြင်း 

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

အစီအစဉ်များ ပြုလုပ်နိုင်ခြင်း (Sorting) 

အပေါ်မှာလည်း ပြောခဲ့ပြီးသွားပါပြီ။ စာလုံးတွေကို အစီအစဉ်အတိုင်း စီချင်တယ်ဆိုရင် လွယ်ကူစွာ စီလို့ရလာပါလိမ့်မယ်။ လေ့လာချင်တယ်ဆိုရင် ThanLwinSoft က ရေးထားတဲ့Sorting Programမှာ လေ့လာနိင်ပါတယ်။

အချက်အလက်ပို့လွတ်ရတွင် ပုံစံကွဲလွဲမှု မရှိနိုင်ခြင်း 

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

ဘာသာပြန်စနစ်၊ အဘိဓာန် စသည်တို့အတွက် ပိုမိုလွယ်ကူစွာ ဖန်တီးနိုင်ခြင်း 

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

နိုင်ငံတကာ စံနှုန်းဖြစ်ခြင်း 

နိုင်ငံတကာ စံနှုန်းဖြစ်တဲ့အတွက် နိုင်ငံတကာက လက်ခံမယ်ဆိုရင် နိုင်ငံတကာ စံနှုန်းနဲ့ ညီတာကိုပဲ စဉ်းစားပါလိမ့်မယ်။ ဥပမာ – OS လိုတွေမှာ တစ်ခါတည်း ထည့်သွင်းပေးမယ်ဆိုရင် International Standard နဲ့ ညီတာကိုသာ ထည့်သွင်းပေးမှာ ဖြစ်ပါတယ်။ နိုင်ငံတကာ စံနှုန်းနဲ့ ညီတဲ့အတွက် နိုင်ငံတကာမှာ မြန်မာစာစနစ်ဆိုတာ သီးသန့် ရပ်တည်နိုင်စေပါတယ်။

စနစ်တစ်ခုတည်း အပေါ်မှာ အခြေခံထားခြင်း 

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

Converter Issue

ကျွန်တော်တို့အနေနဲ့ ဇော်ဂျီသုံးနေတာကနေ Convert လုပ်ချင်တယ်ဆိုရင် ဒါမှမဟုတ် မိမိအသုံးပြုနေတဲ့ Programming Language အလို Convert လုပ်လိုတယ်ဆိုရင် Rabbit Coverter ကို အသုံးပြုနိုင်ပါတယ်။

နိဂုံး

အပေါ်မှာရေးသွားတဲ့ အချက်တွေ အားလုံးဟာ ကျွန်တော်လေ့လာသိရှိခဲ့ရတာတွေကို ရိုးရိုးသားသား ပြန်ရေးထားခြင်း ဖြစ်ပါတယ်။ အဲဒီလို သိအောင် ကူညီခဲ့တဲ့သူတွေကိုတော့ အများကြီးပါပဲ။ ကိုထွန်းသူရသက်၊ ကိုငွေထွန်း၊ ကိုဇော်ထွဋ်၊ ကိုရာဗီ၊ ကိုထူးမြင့်နောင်နဲ့ အခြား ယူနီကုဒ်နဲ့ ပတ်သက်သမျှ သူအားလုံးကို ကျေးဇူးတင်ရမှာပဲ။ 

Online Reference တွေ အနေနဲ့ကတော့ Wikipedia,Unicode.ORG တို့ကနေ လေ့လာတာပါ။ ကျွန်တော်သိတာတွေ ချရေးထားတာ ဖြစ်တဲ့အတွက် အမှားအယွင်းတွေလည်း ရှိနိုင်ပါတယ်။ အဲဒီလို အမှားအယွင်းတွေ ရှိခဲ့ရင် ကျွန်တော့်ကို ထောက်ပြဝေဖန်ပေးဖို့ ဖိတ်ခေါ်ပါတယ်။