လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> php mb_substitute_character နှင့် mb_inernal_encoding အတူတကွအလုပ်လုပ်ကြသည်

php mb_substitute_character နှင့် mb_inernal_encoding အတူတကွအလုပ်လုပ်ကြသည်

gitbox 2025-09-16

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

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်စာသား၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,သာဥပမာ placeholder အတွက်သာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဝမ်းသာစွာနှုတ်ဆက်ခြင်း PHP ဥပမာများကိုလေ့လာခြင်း!\n"</span></span><span>;
</span><span><span class="hljs-variable">$example</span></span><span> = </span><span><span class="hljs-number">123</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$example</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># PHP mb_substitute_character နှင့် mb_internal_encoding ပူးပေါင်းအလုပ်</span></span><span>

Multibyte strings processing PHP လျှောက်လွှာတွင်,အက်ခရာ encoding ၏မှန်ကန်သော setting ကိုအရေးပါသည်。PHP ထောက်ပံ့ `mbstring` တိုးချဲ့,Multibyte ဇာတ်ကောင်များကို process လုပ်ရန်အသုံးပြုသည်。ဤဆောင်းပါးသည်ဆွေးနွေးမှုအပေါ်အာရုံစူးစိုက်ပါလိမ့်မည် `mb_substitute_character` နှင့် `mb_internal_encoding` နှစ်ခု function ကိုအတူတကွအလုပ်လုပ်ပုံ。

</span><span><span class="hljs-comment">## mb_internal_encoding</span></span><span>

`mb_internal_encoding` ပြည်တွင်းရေးဇာတ်ကောင် encoding ကို set သို့မဟုတ်ရရန်အသုံးပြုခဲ့သည်。Internal character encoding သည် Multibyte string functions များ၏အပြုအမူကိုသက်ရောက်သည်,ဥပမာအားဖြင့် `mb_strlen`、`mb_substr` စောင့်。

```php
</span><span><span class="hljs-comment">// အတွင်းပိုင်း encoding ကိုသတ်မှတ်ပါ UTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);

</span><span><span class="hljs-comment">// လက်ရှိပြည်တွင်းရေးကုဒ်ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$currentEncoding</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လက်ရှိပြည်တွင်းရေးကုဒ်ဖြစ်ပါတယ်: <span class="hljs-subst">$currentEncoding</span></span></span><span>\n";
</span></span>

မှန်ကန်သော Internal encoding ကိုတည်ဆောက်ခြင်းသည် string processing မှန်ကန်မှုရှိစေရန်ပထမခြေလှမ်းဖြစ်သည်။ အကယ်. အတွင်းပိုင်း encoding သည် string encoding နှင့်မကိုက်ညီပါက၎င်းသည် string ကိုဖြစ်ပေါ်စေနိုင်သည်။

mb_substitute_character

MB_Substitute_Character ကို စာလုံးများမပြောင်းလဲနိုင်သည့်အခါအစားထိုးနိုင်သည့်စာလုံးများကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့် UTF-8 မှ ISO-8859-1 သို့ပြောင်းလဲသောအခါအချို့သောစာလုံးများကိုကိုယ်စားမပြုနိုင်ပါကအခြားရွေးချယ်စရာအက္ခရာများကိုအသုံးပြုသည်။

 <span><span><span class="hljs-comment">// မေးခွန်းအမှတ်အသားမှအခြားရွေးချယ်စရာဇာတ်ကောင်ထား '?'</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mb_substitute_character</span></span><span>(</span><span><span class="hljs-string">"?"</span></span><span>);

</span><span><span class="hljs-comment">// လက်ရှိအစားထိုးဇာတ်ကောင်ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$subChar</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_substitute_character</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လက်ရှိအစားထိုးဇာတ်ကောင်ဖြစ်ပါတယ်: <span class="hljs-subst">$subChar</span></span></span><span>\n";
</span></span>

အစားထိုးအက္ခရာများသည်အက်ခရာတစ်ခုတည်းသို့မဟုတ်အထူးကြိုးတစ်ခုဖြစ်နိုင်သည်

နှစ်ခုအကြားပူးပေါင်းဆောင်ရွက်မှု

Multibyte String processing လုပ်ခြင်းတွင် internal encoding နှင့်ပြင်ပ encoding နှင့်မကိုက်ညီပါက MB_Substitute_Character အလုပ်လုပ်လိမ့်မည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"ISO-8859-1"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">mb_substitute_character</span></span><span>(</span><span><span class="hljs-string">"?"</span></span><span>);

</span><span><span class="hljs-variable">$utf8_string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ!"</span></span><span>; </span><span><span class="hljs-comment">// UTF-8 ကုဒ်</span></span><span>

</span><span><span class="hljs-comment">// ကြိုးစားပါ UTF-8 string ကိုကူးပြောင်း ISO-8859-1</span></span><span>
</span><span><span class="hljs-variable">$converted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$utf8_string</span></span><span>, </span><span><span class="hljs-string">"ISO-8859-1"</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</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><span class="hljs-comment">// output ကိုဇာတ်ကောင်များကိုယ်စားပြုသည့်အခါ၎င်းကိုအသုံးပြုလိမ့်မည်။ '?' ရေှးယူနိုင်ခြင်း</span></span><span>
</span></span>

ဤဥပမာတွင် MB_Internal_encoding သည် string ကိုမည်သို့အဓိပ္ပာယ်ကောက်ယူသည်ကိုဆုံးဖြတ်သည်။ String ပြောင်းလဲခြင်းဖြစ်စဉ်တွင်လက်မခံနိုင်သောအမှားများရှိလိမ့်မည်။

အကျဉ်းချုပ်

  1. MB_Internal_encoding : mbstring functions အားလုံးကိုအကျိုးသက်ရောက်စေသည့်အတွင်းတူးဖော်ခြင်းကိုအကောင်အထည်ဖော်ခြင်းအားဖြင့်ဖြစ်သည်။

  2. mb_substitute_character : ဇာတ်ကောင်ကိုကိုယ်စားပြုလို့မရတဲ့အခါအစားထိုးကျင့်စာကိုသတ်မှတ်ပါတယ်။

  3. Synergy: ကွဲပြားခြားနားသော encodings များအကြားကြိုးများကိုပြောင်းလဲခြင်း, Internal encoding encoding ensences သည်ပြုပြင်ခြင်းယုတ္တိဗေဒသည်မှန်ကန်ပြီးအစားထိုးသူဇာတ်ကောင်များသည်အမှားအယွင်းများသို့မဟုတ်အမှိုက်များကိုဖြစ်ပေါ်စေလိမ့်မည်မဟုတ်ကြောင်းသေချာစေသည်။

ဆင်ခြင်တုံတရား ကိုပြင်ဆင်ခြင်းဖြင့် MB_SBSHASTE_CHARTICTICTIOND ကို configure လုပ်ခြင်းဖြင့်အထူးသဖြင့်အပြည်ပြည်ဆိုင်ရာ application များရှိ PHP applications များတွင်လုံခြုံစွာပြုလုပ်နိုင်သည်။

 <span><span><span class="hljs-comment">// အမြီး - လွတ်လပ်သောကုဒ်ဥပမာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဆောင်းပါးသရုပ်ပြအဆုံးသတ်。\n"</span></span><span>;
</span><span><span class="hljs-variable">$footerData</span></span><span> = [</span><span><span class="hljs-string">"status"</span></span><span> =&gt; </span><span><span class="hljs-string">"ok"</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$footerData</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>