What is Unicode?

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

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

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

ဒါကြောင့် Unicode အကြောင်းကို မည်သူမဆို နားလည်နိုင်ဖို့ အတက်နိုင်ဆုံး ရှင်းလင်းအောင်ဖော်ပြပေးသွားပါမယ်။

ASCII
ကွန်ပြူတာတွေဟာ သဘာဝအားဖြင့်၊ ကျွန်တော်တို့ မြင်နေရတဲ့ A, B, C လိုစာလုံးတွေ က, ခ, ဂ လို စာလုံးတွေကို နားမလည်ပါဘူး။ 0 နဲ့ 1 တွေကိုပဲ နားလည်တယ်ဆိုတာကို အားလုံး သိပြီးသားပါ။ 1 တွေ 0 တွေကို ကျွန်တော်တို့ လူနားလည်တဲ့ A, B, C တွေဖြစ်အောင် ကြားကနေ ဆောင်ရွက်ပေးတဲ့ Character Encoding Scheme ဆိုတာ ရှိပါတယ်။ အစောပိုင်းကာလ ကွန်ပြူတာတွေမှာ သုံးခဲ့တဲ့ Character Encoding Scheme ကို ASCII လို့ခေါ်ပါတယ်။

(ASCII = American Standard Code for Information Interchange, အသံထွက် – အက်စကီး)

အဲ့ဒီ ASCII ကို အညွှန်းဇယား တစ်ခုလို့ ကျွန်တော်တို့ ယူဆနိုင်ပါတယ်။ သူက စာလုံး တစ်လုံးချင်းစီကို သက်ဆိုင်ရာ နံပါတ်စဉ်လေးတွေနဲ့ ညွှန်းပေးထားပါတယ်။ ASCII မှာ ကဏန်းစဉ်အညွှန်း စုစုပေါင်း (၁၂၈) လုံး ရှိပါတယ်။ A ကနေ Z အထိ စာလုံးတွေ ပါတယ်။ စာလုံးသေး a ကနေ z အထိလည်းပါတယ်။ အပေါင်း၊ အနှုပ် သင်္ကေတတွေ၊ ကွင်းစ ကွင်းပိတ်တွေနဲ့ အခြား သင်္ကေတတွေလည်း ပါ ပါတယ်။ မျက်စိနဲ့မြင်နိုင်တဲ့ စာလုံးအရေးအတွက် (၉၅) လုံးရှိပါတယ်။ ကျန်တဲ့ အကွက်တွေကိုတော့ Control Character တွေအတွက် သုံးပါတယ်။ Escape တို့ Return တို့ Delete တို့လို Command တွေဖြစ်ပါတယ်။သူရဲ့အလုပ်လုပ်ပုံကတော့… ဥပမာ – Keyboard က နေ A Key ကို ရိုက်လိုက်ရင် 0100 0001 ဆိုတဲ့ Binary Signal ကို Keyboard က ပို့လိုက်ပါတယ်။ အဲ့ဒီ Signal ကို Encoding Scheme က 65 လို့ ဘာသာပြန်လိုက်တယ်။ ဇယားထဲမှာ အကွက်အမှတ် 65 ကိုလိုက်ရှာတယ်။ ပြီးတော့ အဲ့ဒီ 65 ဆိုတဲ့ အကွက်ထဲမှာ ထည့်ထားတဲ့ သင်္ကေတဖြစ်တဲ့ A ကို ပြပေးလိုက်ပါတယ်။ 65 ဆိုတဲ့အကွက်ထဲမှာမှတ်ထားတဲ့ သင်္ကေတကို ပြပေးတာပါ။ Keyboard က A key ကိုရိုက်လို့ A ကို ပြပေးတာ မဟုတ်ပါဘူး။

အဲ့ဒီ ASCII ဟာ အစောပိုင်းက ကွန်ပြူတာတွေအတွက် အဆင်ပြေခဲ့ပါတယ်။ ဒါပေမယ့် စာလုံးရေအရေအတွက်ကို (၁၂၈) လုံးသာ ကန့်သတ်လိုက်ခံနိုင်တဲ့အတွက် အင်္ဂလိပ်အက္ခရာတွေအတွက်ပဲအဆင်ပြေပါတယ်။ တစ်ခြား အင်္ဂလိပ်မဟုတ်တဲ့ ဘာသာစကားတွေရဲ့ အက္ခရာတွေအတွက်တော့ (နေရာမလောက်တော့လို့) အဆင်မပြေပါဘူး။

သို့သော်လည်း အဲ့ဒီခေတ်က ASCII နဲ့ပဲအဆင်ပြေအောင် ကြံဖန်ပြီး သုံးခဲ့ကြရပါတယ်။ Win တို့၊ CE တို့လို မြန်မာစာလုံး Font တွေ သုံးဖူးပါသလား? အဲ့ဒီ Font တွေက အထက်မှာပြောခဲ့တဲ့ ASCII ဇယားကို ပြင်ဆင်ထားတာပါ။ ဥပမာ အကွက်နံပါတ် 117 မှာ နဂိုက ရှိနေတဲ့ u ကို ဖယ်ပြီး သူ့အစား က နဲ့ အစားထိုးလိုက်ပါတယ်။ အဲ့ဒီတော့ Keyboard ကရိုက်တော့ u ပေါ်လာတော့ က ဖြစ်သွားပါတယ်။

အဲ့ဒါကြောင့် Win တို့၊ CE တို့လို Font တွေနဲ့ ရေးထားတဲ့ File တစ်ခုကို အဲ့ဒီ Font မရှိတဲ့စက်မှာပြန်ကြည့်တော့ မူလက “မြန်မာ” လို့ ရေးထားပေမယ့် “jrefrm” ဆိုပြီး မြင်ရမှာဖြစ်ပါတယ်။ ဒါဟာ ASCII ဇယားမှာ နေရာလွတ်မကျန်တော့လို့ ရှိနေတဲ့ အင်္ဂလိပ်စာလုံးတွေကိုဖယ်ပြီး နေရာဝင်ယူရတဲ့အတွက် ဖြစ်လာတဲ့ ပြဿနာဖြစ်ပါတယ်။ ဆိုးတာက၊ အဲ့ဒီလို မူလအင်္ဂလိပ်စာလုံးကို ဖယ်ထုပ်လိုက်တဲ့အတွက် အင်္ဂလိပ်စာလုံးတွေကို ပြမပေးနိုင်တော့ပါဘူး။ မြန်မာလိုပဲ ပြပေးနိုင်ပါတော့တယ်။ ပိုပြီးဆိုးတာက Win, CE, Academy စသဖြင့် မြန်မာ Font မျိုးစုံရှိလာပြီး တစ်ခုနဲ့တစ်ခု နေရာသတ်မှတ်ပုံမတူတဲ့အခါမှာ မြန်မာ Font ချင်းအတူတူ Win နဲ့ ရေးထားတဲ့စာကို Academy နဲ့ဆို ဖတ်လို့မရဘူးဆိုတာမျိုးတွေ ဖြစ်လာပါတယ်။ အဆင်မပြေပါဘူး။ သူ့ခေတ်သူ့အခါအရ မရှိလို့သာ ရှိတာနဲ့ ဖြစ်အောင် သုံးခဲ့ကြရတာပါ။

“အဆင်ပြေအောင် ဒီလိုလုပ်ပါလား။ သူက ၁၂၈ ထိပဲသုံးထာတာလေ။ ၁၂၉ ဆိုတဲ့အကွက်မှာ က ကို သွားထားရင် ရသားပဲ” လို့များ စဉ်းစားနေပါသလား… မိတ်ဆွေစဉ်းစားနေသလိုပဲ တရုတ်ပြည်က တရုတ်ကြီးက စဉ်းစားနေနိုင်ပါတယ်။ ယိုးဒယားတွေကလည်း စဉ်းစားနေနိုင်ပါတယ်။ ဒါကြောင့် အဲ့လို ကိုယ့်သဘောနဲ့ကိုယ်လုပ်လို့ မသင့်ပါဘူး။

UTF-8
အကွက်နံပါတ် ပေးပုံပေးနည်းတွေတော့ ကွာသွားပါတယ်။ U+100F ဆိုတဲ့ ဖော်ပြချက်မျိုးကို တွေ့ဖူးပါလိမ့်မယ်။ U တွေ F တွေကို ထည့်စဉ်းစားမနေပါနဲ့။ အကွက်နံပါတ်အသစ်တွေထပ်တိုးပြီး မြန်မာစာအတွက် အဲ့ဒီလို ထပ်တိုးထားတဲ့ အကွက်တွေထဲမှာ နေရာတစ်နေရာ ပေးထားတယ်လို့ လွယ်လွယ်မှတ်နိုင်ပါတယ်။

ပြဿနာက အဲ့ဒီ ဇယားမှာ အကွက်ပေါင်း တစ်သိန်းကျော်ရှိပေမယ့် ကျွန်တော်တို့သုံးနေတဲ့ Keyboard တွေမှာက Key ပေါင်းက တစ်ရာကျော်ပဲ ရှိပါတယ်။ အဲ့ဒီ Key တစ်ရာကျော်လေးနဲ့ စာလုံးပေါင်း တစ်သိန်းကျော်ကို ဘယ်လိုသွားရိုက်မလဲ။

ဒါဟာ Zawgyi တို့ Myanmar3 တို့လို Font တွေကို ရိုက်ဖို့အတွက် Keyboard Software တွေကို Install လုပ်နေရခြင်းရဲ့ အကြောင်းရင်းပဲဖြစ်ပါတယ်။ Language ပြောင်းလို့ရဖို့အတွက် အဲ့ဒီ Keyboard Software တွေ သွင်းနေရတာပါ။ ဥပမာ – Language ကို English ထားပြီး Keyboard ကနေ A Key ကို နှိပ်ရင် U+0041 ဆိုတဲ့ ကုဒ်နံပါတ်ကို ရမှာပါ။ U+0041 အကွက်မှာ A လို့ ပြောထားတဲ့အတွက် A ပေါ်မှာဖြစ်ပါတယ်။ Language မှာ မြန်မာ ပြောင်းပြီးမှ A Key ကို နှိပ်မယ်ဆိုရင်တော့ U+1031 ဆိုတဲ့ နံပါတ်ကို ရမှာပါ။ U+1031 အကွက်မှာကတော့ “ေ” လို့ပြောထားတဲ့အတွက် “ေ” ပေါ်ပါလိမ့်မယ်။ ဒီလိုနည်းနဲ့ Keyboard တစ်ခုတည်းသုံးပြီး Language အမျိုးမျိုးပြောင်း ရိုက်လို့ ရသွားပါတယ်။

ကွန်ပြူတာမှာ မြန်မာစာအတွက် ကိုယ်ပိုင်နေရာတစ်ခုရထားပြီးပြီမို့ အရင်လို မြန်မာစာတော့ မြန်မာစာပဲ၊ ဒါပေမယ့် ဒီ Font နဲ့မှ ဖတ်လို့ရမယ်၊ ဟို Font နဲ့ဆိုမရဘူးဆိုတဲ့ ပြဿနာမျိုး အမှန်ဆို မရှိသင့်တော့ပါဘူး။ အင်္ဂလိပ်စာမှာဆိုရင် Time News Roman နဲ့ ဖတ်လည်း ဖတ်လို့ရတာပဲ၊ Arial နဲ့ဖတ်လည်း ဖတ်လို့ရတာပဲ၊ Courier New နဲ့ဖတ်လည်း ဖတ်လို့ရတာပါပဲ။

အခု ကျွန်တော်တို့ ပြောနေတာက Encoding ပဲရှိပါသေးတယ်။ Unicode အကြောင်း မပါသေးပါဘူး။

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

မြန်မာစာလို ဘာသာစကား မျိုးမှာ စာလုံးတွေကို နေရာသတ်မှတ်ပေးလိုက်ယုံနဲ့ မပြီးတာတွေ ရှိပါတယ်။ ဥပမာ – မြန်မာစာမှာ ရရစ် နှစ်မျိုး ရှိပါတယ်။ ရရစ် အကြီး ( ြ— ) နဲ့ အသေး ( ြ– ) ပါ။ အဲ့ဒီ ရရစ် နှစ်ခုဟာ ပုံသဏ္ဍာန် ကွဲပြားပေမယ့် သဘောတရားဟာ (လုံးဝ) အတူတူပါပဲ။ ကကြီး နဲ့တွဲတော့ ( ကြ ) ဖြစ်ပြီး ခကွေးနဲ့တွဲတော့ ( ခြ ) ဖြစ်ရပါတယ်။ ဒါကြောင့် ရရစ် အတွက် နေရာသတ်မှတ်ပြီးတဲ့နောက်မှာ အဲ့ဒီ ရရစ်ကို ဘယ်အချိန်မှာ အသေးပြပြီး ဘယ်အချိန်မှာ အကြီးပြရမလဲဆိုတဲ့ စည်းကမ်းလေးတွေ လိုလာပါတယ်။ Unicode က အဲ့လိုကိစ္စတွေကိုပါ ထည့်စဉ်းစားထားပါတယ်။ အလွန်ရှုပ်ထွေးတဲ့ ကိစ္စကြီးဖြစ်ပါတယ်။

အခုလောက်ပြောလိုက်ပြီဆိုရင် Unicode ဆိုတာကို အတိုင်းအတာတစ်ခုထိ နားလည်လိမ့်မယ်လို့ မျှော်လင့်ပါတယ်။

ကျေးဇူး…
[ Ei Maung ]

Leave a comment

Filed under Unicode

Leave a comment