Convert_Cyr_String function သည်အထွေထွေ encoding encoding tool တစ်ခုမဟုတ်ပါ။ IcONV (သို့) MB_ConVert_encoding ကဲ့သို့သောစားပွဲများကိုရှာဖွေခြင်းထက်စားပွဲများကိုရှာဖွေခြင်းဖြင့်စားပွဲများကိုရှာဖွေခြင်းဖြင့်ဇာတ်ကောင်မြေပုံကိုပြီးဆုံးစေသည်။
ထို့ကြောင့်, မူရင်း string ကို encoding ကိုလျစ်လျူရှုသို့မဟုတ်မှားယွင်းစွာသတ်မှတ်ထားသော (i.e. , parameter မှ $ ) ကို differing သို့မဟုတ်မှားယွင်းစွာပြောင်းလဲခြင်းသည် strings ကို strings ကို string ကိုပြောင်းလဲလိမ့်မယ်။ ၎င်းသည် output string ကိုရှုပ်ထွေးမှုကိုရှုပ်ထွေးစေပြီး garbled သို့မဟုတ် character misalignment ကိုဖြစ်ပေါ်စေသည်။
ဇာတ်ကောင်မြေပုံအမှား <br> Input byte သည်အခြား encoded ဇာတ်ကောင်အတွက်မှားယွင်းသောကြောင့်ပြောင်းလဲခြင်းနေစဉ်အတွင်းမြေပုံရေးဆွဲခြင်း၏ရလဒ်သည်မှားယွင်းသောဇာတ်ကောင်ဖြစ်လိမ့်မည်။ ဥပမာအားဖြင့်, Koi8-r ဖြင့် encoded encoded အက္ခရာများကို CP866 encoding အဖြစ်သတ်မှတ်ပြီးပြောင်းလဲခြင်းအပြီးရရှိသောဇာတ်ကောင်များသည်လုံးဝကွဲပြားခြားနားလိမ့်မည်။
garbled နှင့်ဖတ်လို့မရသောဇာတ်ကောင်များ <br> မမှန်ကန်သည့်မြေပုံတစ်ခုသည်မမျှော်လင့်သော bytes များကိုမမျှော်လင့်သော setes များကိုထုတ်လုပ်နိုင်ပြီးမပျက်စီးနိုင်သောသို့မဟုတ်အသိအမှတ်ပြုနိုင်သောဇာတ်ကောင်များပါ 0 င်သည့် output string ကိုဖြစ်ပေါ်စေသည်။
ယုတ္တိအမှားသို့မဟုတ်ဒေတာအရှုံး <br> <br> အချို့သောသော့ချက်စာလုံးများသည်မမှန်ကန်ကြောင်းပြောင်းလဲခြင်းသည် string ၏ semantants အချက်အလက်များဆုံးရှုံးခြင်းကိုဖြစ်ပေါ်စေပြီးနောက်ဆက်တွဲအပြောင်းအလဲများအတွက်ယုတ္တိအမှားအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
Koi8-R နှင့်အတူ encoded string တစ်ခုရှိသည်ဆိုပါစို့:
<span><span><span class="hljs-variable">$original</span></span><span> = </span><span><span class="hljs-string">"\xd0\xd2\xc9\xd7"</span></span><span>; </span><span><span class="hljs-comment">// KOI8-Rcoded ကိုယ်စားလှယ်“Тест”စကားလုံးတစ်လုံး</span></span><span>
</span></span>
မှန်ကန်သောအသုံးပြုမှုမှာ -
<span><span><span class="hljs-variable">$converted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">convert_cyr_string</span></span><span>(</span><span><span class="hljs-variable">$original</span></span><span>, </span><span><span class="hljs-string">"koi8-r"</span></span><span>, </span><span><span class="hljs-string">"w"</span></span><span>); </span><span><span class="hljs-comment">// ကူးပြောင်း Windows-1251</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$converted</span></span><span>;
</span></span>
အကယ်. မူရင်း encoding ကိုလျစ်လျူရှုပါက၎င်းကိုအလွဲသုံးစားလုပ်လိမ့်မည်။
<span><span><span class="hljs-variable">$converted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">convert_cyr_string</span></span><span>(</span><span><span class="hljs-variable">$original</span></span><span>, </span><span><span class="hljs-string">"cp866"</span></span><span>, </span><span><span class="hljs-string">"w"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$converted</span></span><span>;
</span></span>
ဤအချိန်တွင် output ၏ရလဒ်သည် carbled ပါလိမ့်မည်။ အဘယ်ကြောင့်ဆိုသော် function သည် Koi8 R Bytes ကို CP866 bytes အဖြစ်မှားယွင်းစွာဘာသာပြောင်းသည်။
Convert_Cyr_String ကို အသုံးပြုသောအခါ မူရင်းကြိုး၏ encoding ကိုမှန်ကန်စွာသတ်မှတ်ရန်အရေးကြီးသည် ။ ဤလုပ်ဆောင်ချက်မှဒီဇိုင်းရေးဆွဲထားသောရိုးရှင်းသောမြေပုံရေးဆွဲခြင်းယန္တရားသည် input encoding ကိုသူ့ဟာသူမဆုံးဖြတ်နိုင်ပါ။ မမှန်ကန်သော encoding parameters များသည်ဇာတ်ကောင်ပြောင်းလဲခြင်းအမှားများကိုဖြစ်ပေါ်စေပြီး,
ပိုမိုရှုပ်ထွေးသောသို့မဟုတ် Multi-coding အခြေအနေများအတွက်ပြောင်းလဲခြင်း၏တိကျမှန်ကန်မှုနှင့်အားကောင်းသောအနိုင်ရေးကိုသေချာစေရန် Iconv သို့မဟုတ် MB_ConVert_encoding ကဲ့သို့သောအစွမ်းထက်သော encoding ပြောင်းလဲခြင်းလုပ်ငန်းများကိုပိုမိုအသုံးပြုရန်အကြံပြုသည်။