မီးမွှေးလက်စနဲ့ မထူးပါဘူး။ ဆက်မွှေးလိုက်ဦးမယ်။ ဒါက ယူနီကုတ် ၅.၁ ထွက်တုန်းက ရေးခဲ့တဲ့စာ။

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

ဟိုးအရင် ကာလတွေတုန်းက ကွန်ပြူတာမှာ မြန်မာစာလုံးကို သိမ်းဆည်းတဲ့ အခါမှာ မြန်မာစာလုံး အဖြစ်မသိမ်းဆည်းပဲ အင်္ဂလိပ် စာလုံးနဲ့ ညီမျှတဲ့ နံပါတ် အဖြစ်နဲ့ပဲ သိမ်းဆည်းပါတယ်။ အကယ်၍ ကျွန်တော်တို့ သဝေထိုး (ေ) ကို ရိုက်ပြီး ကွန်ပြူတာ ထဲမှာ သိမ်းမယ်ဆိုရင် ကွန်ပြူတာက သဝေထိုးအနေနဲ့ မသိမ်းပဲ အင်္ဂလိပ်စာလုံး "a" နဲ့ ညီမျှတဲ့ နံပါတ် 97 အနေနဲ့ သိမ်းပါတယ်။ အဲဒီလို စနစ်မျိုး သုံးထားတဲ့ ဖောင့်ကို အက်စကီးဖောင့် (ASCII Font)လို့ ခေါ်ပါတယ်။ အက်စကီး ဖောင့်တွေဟာ တရုတ်၊ ကိုရီးယား ဘယ်ဘာသာ စကားကို မဆို အင်္ဂလိပ် အက္ခရာ ဒါမှမဟုတ် !@ အစရှိတဲ့ သင်္ကေတ (Symbol) တွေနဲ့ ညီမျှတဲ့ ဂဏန်းတွေ အဖြစ် ပြောင်းပြီး သိမ်းပါတယ်။ အက္ခရာ တစ်လုံးကို သိမ်းဖို့ ဂဏန်း ၂ လုံးစာ နေရာ ပေးရပါတယ်။ ဝင်းအင်းဝ၊ ဝင်းကလော ၊ CE စတဲ့ မြန်မာဖောင့်တွေဟာ အဲဒီလို စနစ်မျိုးနဲ့ အလုပ်လုပ်ပါတယ်။ အဲဒါကြောင့်မို့ ဝင်းအင်းဝနဲ့ ရေးထားတဲ့ စာကို မြန်မာ ဖောင့်မရှိတဲ့ အချိန် ဖတ်ရင် အင်္ဂလိပ် စာလုံးတွေ မြင်ရတာပါ။

ယူနီကုတ် စံနှုန်းမှာတော့ ဘာသာစကား တစ်ခုချင်းစီ အတွက် သီးသန့် ဂဏန်း (Codepoint) တွေ သတ်မှတ်ပေးထားပါတယ်။ တကမ္ဘာလုံးမှာ ရှိသမျှ ဘာသာစကားတွေ အတွက် ဂဏန်း ၂လုံးစာ နဲ့ မလောက်တဲ့ အတွက် အခြေ ၁၆ ရှိတဲ့(Hexadecimal) ဂဏန်း ၄လုံး သုံးထားပါတယ်။ အဲဒီအတွက် အက္ခရာ ၆သောင်း ၅ထောင်ကျော် ကို ယူနီကုတ် စနစ်မှာ ကွဲကွဲပြားပြား သိမ်းလို့ရပါတယ်။ မြန်မာစာ နဲ့ တိုင်းရင်းသား ဘာသာစကားများ ဖြစ်တဲ့ ရှမ်း၊မွန်၊ စကောကရင်၊ ပိုးကရင် စတဲ့ ဘာသာစကားတွေ အတွက် ယူနီကုတ် အဖွဲ့ (Unicode Consortium) က ယူနီကုတ်နံပါတ် 4096 ကနေ 4255 (Decimal) အတွင်းမှာ သတ်မှတ်ပေးထားပါတယ်။ အဲဒီတော့ ကျွန်တော်တို့ မြန်မာစာ သဝေထိုး “ေ” ကို ရိုက်ပြီး သိမ်းမယ် ဆိုရင် ယူနီကုတ် စံနှုန်းမှာ နံပါတ် 4145 အနေနဲ့ သိမ်းပေးပါတယ်။ ကမ္ဘာပေါ်မှာ ရှိသမျှ ဘာသာစကားတွေ အားလုံးထဲမှာ 4145 နဲ့ ညီမျှတဲ့ အက္ခရာ ဟာ မြန်မာ အက္ခရာ သဝေထိုး တစ်ခုပဲ ရှိပါတယ်။ အခြား ဘယ်ဘာသာ စကားမှာမှ မရှိပါဘူး။ အဲဒါကြောင့် မြန်မာယူနီကုတ်ဖောင့် မရှိရင် အဲဒီစာလုံးကို လေးထောင့်ကွက် အဖြစ်နဲ့ပဲ မြင်ရပါတယ်။

ဇော်ဂျီနဲ့ ယူနီကုတ် ဖောင့်တွေ ရဲ့ ကွာခြားချက်က အဲဒီမှာ စမြင်နိုင်ပါတယ်။ ယူနီကုတ်ဖောင့် (Myanmar3, Padauk, Parabaik, MyMyanmar) အစရှိတဲ့ ဖောင့်တွေက ယူနီကုတ် အဖွဲ့က Unicode 5.1 Standard မှာ သတ်မှတ်ပေးထားတဲ့ စံနှုန်းအတိုင်း အတိ အကျ လိုက်နာပြီး သတ်မှတ်ထားတဲ့ ဂဏန်းတွေနဲ့ စာလုံးတွေကို သိမ်းပါတယ်။ ဇော်ဂျီကတော့ ကိုယ့်ဘာသာကိုယ် သိမ်းချင်တဲ့ ဂဏန်းနဲ့ သိမ်းထားပါတယ်။ ဇော်ဂျီက သုံးတဲ့ ဇယားနဲ့ ယူနီကုတ် အဖွဲ့က တရားဝင် သတ်မှတ်ပေးထားတဲ့ ဇယား နှစ်ခုကို အောက်မှာ ယှဉ်ပြ ထားပါတယ်။

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

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

ယူနီကုတ်ဖောင့်တွေမှာ နငယ်ကို တစ်ချောင်းငင်နဲ့ တွဲရိုက်လိုက်တာနဲ့ နငယ်အကြီးကို အသေး (န) အဖြစ် User မြင်အောင် အလိုအလျောက် ပြောင်းပေးပါတယ်။ ဒါပေမယ့် အကြီးပဲ ပြပြ အသေးပဲပြပြ နောက်ကွယ်မှာ နငယ်ကို သိမ်းထားတဲ့ ဂဏန်းကတော့ 4116 တစ်ခုတည်းပါပဲ။ ဇော်ဂျီဖောင့်မှာတော့ အဲဒီလို နည်းပညာ မပါပါဘူး။ နငယ် အသေးကို သပ်သပ် ရိုက်ပေးရပါတယ်။ ဇော်ဂျီဖောင့်မှာ နငယ် အကြီး ရိုက်ရင် 4116 နဲ့ သိမ်းပြီး အသေးရိုက်ရင် 4239 နဲ့ သိမ်းပါတယ်။ Smart Rendering မလုပ်ဘဲ သိမ်းထားတဲ့ အတိုင်း ပြန်ပြီး ရိုက်ပြ ပါတယ်။ ယူနီကုတ် ၅.၁ စံနှုန်းအရ ဇော်ဂျီက “န” အနေနဲ့ သုံးထားတဲ့ နံပါတ် 4239 ဟာ မြန်မာဘာသာ အတွက် သတ်မှတ်ထားတဲ့ ဂဏန်းမဟုတ်ပဲ ပလောင် ဘာသာစကားအတွက် သတ်မှတ်ထားတဲ့ ဂဏန်း ဖြစ်ပါတယ်။

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

ဒုတိယ အချက်အနေနဲ့ ယူနီကုတ်ဖောင့်တွေဟာ User က ရိုက်ထည့်လိုက်တဲ့ ဂဏန်းကို နောက်ကွယ်မှာ စံနှုန်းနဲ့ ညီတဲ့ အစီအစဉ် တကျ ပြန်စီပေးရပါတယ်။ အဲဒါကို Normalization လုပ်တယ်လို့ ခေါ်ပါတယ်။ User အနေနဲ့ “နိုင်” ဆိုတဲ့ စာလုံးကို “န” + “_ိ ”+ “ - ု” + “င” + “- ်” ဆိုပြီး ရိုက်ထည့်လို့ ရသလို “န” + “ - ု” + “_ိ ” + “င” + “- ်” ဆိုပြီး တော့လည်း ရိုက်လို့ ရပါတယ်။ “နိုင်” ဆိုတဲ့ စကားလုံးကို User အနေနဲ့ “_ိ ”+ “ - ု” (လုံးကြီးတင် တစ်ချောင်းငင်) နဲ့ပဲ ရိုက်ထည့်ထည့် “ - ု” + “_ိ ” (တစ်ချောင်းငင် လုံးကြီးတင်) နဲ့ပဲ ရိုက်ထည့်ထည့် ယူနီကုတ် ဖောင့်က နောက်ကွယ်မှာ “_ိ ”+ “ - ု” (လုံးကြီးတင် တစ်ချောင်းငင်) အဖြစ် ပြန် အစီအစဉ် ချပြီး သိမ်းပေးပါတယ်။ ဇော်ဂျီကတော့ အစီအစဉ် မချပဲ User ရိုက်ထည့်တဲ့ အတိုင်း သိမ်းပါတယ်။

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

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

အဲဒီ ဒေတာဘေ့စ်ကို ယူနီကုတ် ၅.၁ နဲ့ သိမ်းရင် မှတ်ပုံတင် နံပါတ်က နှစ်ခု မထပ် နိုင်ပါဘူး။ ဥပမာ ၅/စကန(နိုင်)၀၀၀၀၀၀ ဆိုတဲ့ မှတ်ပုံတင် နံပါတ်ကို ဒေတာဘေ့စ်ထဲမှာ တစ်ကြိမ်ပဲ ရိုက်ထည့်လို့ ရပါမယ်။ (နိုင်) ကို ရိုက်ထည့်တဲ့သူက “_ိ ”+ “ - ု” (လုံးကြီးတင် တစ်ချောင်းငင်) အစီအစဉ် နဲ့ ရိုက်ရိုက် “ - ု” + “_ိ ” (တစ်ချောင်းငင် လုံးကြီးတင်) အစီအစဉ်နဲ့ ရိုက်ရိုက် ယူနီကုတ်ဖောင့်က Normalize လုပ်ပေးတဲ့အတွက် နောက်ဆုံးမှာ ဒေတာဘေ့စ်ထဲကို “_ိ ”+ “ - ု” (လုံးကြီးတင် တစ်ချောင်းငင်) အစီအစဉ်နဲ့ပဲ ဝင်သွားပါလိမ့်မယ်။ ဇော်ဂျီနဲ့ ရိုက်ထည့်လို့ User က (နိုင်) ကို မှားယွင်းပြီး ရိုက်ထည့်ရင် “_ိ ”+ “ - ု” (လုံးကြီးတင် တစ်ချောင်းငင်) နဲ့ တစ်ခါ “ - ု” + “_ိ ” (တစ်ချောင်းငင် လုံးကြီးတင်) နဲ့တစ်ခါ မှတ်ပုံတင် နံပါတ် တစ်ခုတည်းကို ၂ ခါဝင်သွား နိုင်ပါတယ်။ လူဦးရေ စာရင်းလို သန်းဂဏန်း နဲ့ ရှိတဲ့ ဒေတာတွေထဲမှာ အဲဒီလို အမှားမျိုး မတော်တဆ ဖြစ်ခဲ့ရင် ကျွန်တော်တို့ အမှားကို တွေ့အောင် ရှာနိုင်ပါ့မလား။

အဲဒီဒေတာဘေ့စ်ကို ယူနီကုတ် ၅.၁ နားလည်တဲ့ ဒေတာဘေ့စ် (ဥပမာ MySQL Latest Version) အဖြစ် Convert လုပ်ရင် Error တက်ပါလိမ့်မယ်။ Database ထဲမှာ အစီအစဉ်တကျ သိမ်းထားတဲ့ စာက ပြသနာ မရှိပေမယ့် Normalize မလုပ်ဘဲ သိမ်းချင်သလို သိမ်းထားတဲ့စာကိုတော့ Database က သူနားလည်သလို Unicode Normalization လုပ်ပါလိမ့်မယ်။ အဲဒီအချိန်မှာ နံပါတ် ၂ ခု အတူတူ ဖြစ်သွားတဲ့ အတွက် Unique Constraint ကို ချိုးဖောက်မိပြီး ဒုက္ခနဲ့ လှလှ တွေ့ပေးနိုင်ပါတယ်။

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

နောက်တစ်ခု ကွာတာကတော့ “က္က” လိုမျိုး ပါဌ်ဆင့် တွေ ရိုက်တဲ့ နေရာမှာပါ။ ပါဌ်ဆင့်တွေ အတွက် ယူနီကုတ်မှာ ဂဏန်း သတ်သတ် ပေးမထားပါဘူး။ ယူနီကုတ် စံနှုန်း အရ ပါဌ်ဆင့်နှစ်ခု ရဲ့ ကြားမှာ 4153 ဆိုတဲ့ ဂဏန်းကို ထည့်ပြီး သိမ်းပါတယ်။ ဖောင့်က 4153 ဆိုတဲ့ ဂဏန်းကို တွေ့ရင် ရှေ့နောက် ဂဏန်း နှစ်လုံးကို ဆက်ပြီး သူ့အလိုအလျောက် ပါဌ်ဆင့် အဖြစ် ရိုက်ပြ ပါတယ်။ ဥပမာ “က္က” ဆိုတဲ့ စာလုံးကို သိမ်း ချင်ရင် ယူနီကုတ် စံနှုန်းမှာ က ရဲ့ နံပါတ်က 4096 ဖြစ်တဲ့ အတွက် “4096 + 4153 + 4096” ဆိုပြီး သိမ်းပါတယ်။ User အနေနဲ့လည်း ကီးဘုတ်ပေါ်မှာ ~ အက္ခရာတွေ “Ctrl + Alt” တွေ ရိုက်စရာ မလိုဘဲ ပါဌ်ဆင့်ရဲ့ ဒုတိယ အက္ခရာ မရိုက်ခင်မှာ “4153” နဲ့ ညီမျှတဲ့ “Shift + f ” ကို ကီးဘုတ်ပေါ်ကနေ ရိုက်ထည့် လိုက်ရုံပါပဲ။ “က” + “Shift +f ” + “က” ဆိုရင် ကကြီး နှစ်လုံးဆင့် ဖြစ်ပါတယ်။

ဇော်ဂျီမှာတော့ ပါဌ်ဆင့်တွေကို ပါဌ်ဆင့်အတိုင်း သိမ်းပါတယ်။ အဲဒီအတွက် မြန်မာစာ အတွက် မဟုတ်ဘဲ ကရင် ဘာသာစကားအတွက် သတ်မှတ်ထားတဲ့ ဂဏန်း 4192 ကနေ 4220 အတွင်းက ဂဏန်းတွေကို ယူသုံးပြီး သိမ်းပါတယ်။ အဲဒီလို တိုင်းရင်းသား ဘာသာစကားတွေ အတွက် သတ်မှတ်ပေးထားတဲ့ ကုတ်ပွိုင့်တွေကို ယူသုံးထားတဲ့ အတွက် အခု လက်ရှိသုံးနေတဲ့ ဇော်ဂျီ ၂၀၀၈ ကို သုံးမယ် ဆိုရင် တိုင်းရင်းသားဘာသာ ယူနီကုတ်တွေနဲ့ အတူတွဲပြီး ပြဖို့ မဖြစ်နိုင်ပါဘူး။

ဒီလောက်ဆိုရင် ဇော်ဂျီနဲ့ ပတ်သက်တဲ့ ဒဏ္ဍာရီ အများစုကို ရှင်းရှင်းလင်းလင်း သိကြပြီလို့ ထင်ပါတယ်။

July 15, 2009
Zaw Thet Aung


မူရင်းစာစုပိုင်ရှင် တင်ထားတဲ့စာစုက ဒီလင့်ခ်မှာပါ
👇👇👇👇👇

Comments

Popular posts from this blog

မြန်မာယူနီကုဒ်ဖောင့်များ စုစည်းမှု (Updated on 1.10.2016)

ZawDecode 2.0 (နှစ်မျိုးမြင်ဖောင့်)

VIVO MYANMAR UNICODE THEME FONT FOR ANDROID 4.2.2