လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_Get_info မှတဆင့် MB_Get_info မှတဆင့် character encoding ကိုဘယ်လိုဆုံးဖြတ်မလဲ

MB_Get_info မှတဆင့် MB_Get_info မှတဆင့် character encoding ကိုဘယ်လိုဆုံးဖြတ်မလဲ

gitbox 2025-05-11

ဘာသာစကားမျိုးစုံ applications များတွင်ကွဲပြားခြားနားသောဘာသာစကားများဖြင့်မှန်ကန်သောကိုင်တွယ်သည့်စာလုံးများကိုမှန်ကန်စွာကိုင်တွယ်သည့်စာလုံးပေါင်းကိုအဓိကပြ issue နာဖြစ်သည်။ PHP သည် Multibyte ဇာတ်ကောင် encoding ကိုကိုင်တွယ်သောလုပ်ဆောင်ချက်များကိုပါ 0 င်သောစွမ်းဆောင်ရည်မြှင့်တင်ခြင်း mbstring ကို ထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည် MB_GEget_info function ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါကဘာသာစကားမျိုးစုံဘာသာစကားရေးသားခြင်းကိုဆုံးဖြတ်ရန်နှင့်ဘာသာစကားအမျိုးမျိုးဖြင့်အကြောင်းအရာများကိုလုပ်ဆောင်သောအခါအမှားမရှိပါ။

1 ။ mb_get_info function ကိုမိတ်ဆက်

MB_Get_info သည် PHP Mbstring extension မှလက်ရှိဇာတ်ကောင် encoding နှင့်ပတ်သက်သော configuration information ကိုရရှိရန်အသုံးပြုနိုင်သည့် PHP Mbstring extension မှပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ များသောအားဖြင့်ကျွန်ုပ်တို့သည်ဘာသာစကားမျိုးစုံသောစာသားကိုလုပ်ဆောင်သောအခါစာသားကိုပိုမိုကောင်းမွန်စေရန်ဤလုပ်ဆောင်မှုမှတစ်ဆင့် encoding information ကိုကျွန်ုပ်တို့ရယူနိုင်သည်။

 mb_get_info($type = 'all')

ဤလုပ်ဆောင်ချက် သည် မည်သည့်သတင်းအချက်အလက်ကိုပြန်လည်ပေးပို့မည်ကိုဆုံးဖြတ်သည်။ Parameter $ အမျိုးအစား ၏တန်ဖိုးသည် -

  • 'all' (ပုံမှန်): အချက်အလက်အားလုံးကိုပြန်ပို့သည်။

  • 'internal_encoding' : အတွင်းပိုင်းဇာတ်ကောင် encoding ကိုပြန်ပို့သည်။

  • 'http_output' : HTTP output encoding ကိုပြန်ပို့သည်။

  • 'input_encoding' : input encoding ပြန်ပို့သည်။

  • 'output_encoding' : output encoding ပြန်ပို့။

  • 'encoding_translation' : encoding ပြောင်းလဲခြင်း option ကိုပြန်ပို့သည်။

2 ။ ဥပမာ - ဇာတ်ကောင် encoding ကိုဆုံးဖြတ်ပါ

ဘာသာစကားမျိုးစုံစာသားနှင့်ကိုင်တွယ်ရန်လိုအပ်ပြီးစာသားကိုမှန်ကန်စွာ encoded ဟုသေချာစေရန်လိုသည်ဆိုပါစို့။ လက်ရှိပတ်ဝန်းကျင်ရှိ encoding settings ကိုစစ်ဆေးရန် MB_GEget_info ကို သုံးနိုင်သည်။ လက်ရှိဇာတ်ကောင် encoding အချက်အလက်များကိုမည်သို့ရယူရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

 <?php
// အားလုံး coded သတင်းအချက်အလက်ရယူပါ
$encodingInfo = mb_get_info('all');

// output ကို encoding သတင်းအချက်အလက်
echo '<pre>';
print_r($encodingInfo);
echo '</pre>';
?>

အထက်ပါကုဒ်ကိုဖွင့်ပြီးနောက် $ Encodinginfo တွင် လက်ရှိဇာတ်ကောင် encoding ၏အသေးစိတ်အချက်အလက်များပါ 0 င်မည်ဖြစ်သည်။ ဤအချက်အလက်သည်လက်ရှိပတ်ဝန်းကျင်သည်မှန်ကန်သောဇာတ်ကောင် encoding ကိုအထောက်အကူပြုသည်ကိုနားလည်စေသည်။

3 ။ ကွဲပြားခြားနားသောဘာသာစကားများဖြင့်ပြုပြင်သည့်အခါမှန်ကန်သော encoding ကိုအသုံးပြုသည်ကိုသေချာအောင်လုပ်ပါ

ဘာသာစကားများကွဲပြားခြားနားသောဘာသာစကားများကိုသုံးနိုင်သည်, ဥပမာအားဖြင့်အင်္ဂလိပ်သည်များသောအားဖြင့် ISO-8859-1 (သို့) UTF-8 ကို အသုံးပြု. တရုတ်ကိုများသောအားဖြင့် GB2312 သို့မဟုတ် UTF-8 ကို အသုံးပြု. encoded လုပ်လေ့ရှိသည်။ MB_GEGET_INFO function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်စာသားကိုရေးသောအခါ encoding အမှားမရှိပါ။

စာသားများကိုဘာသာစကားအမျိုးမျိုးဖြင့်ကိုင်တွယ်သောအခါမှန်ကန်သောဇာတ်ကောင် encoding ကိုသေချာစေရန် Mbstring function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည့်ဥပမာတစ်ခုမှာဤတွင်ဖော်ပြထားသည်။

 <?php
// လက်ရှိအတွင်းပိုင်းဇာတ်ကောင် encoding ရယူပါ
$currentEncoding = mb_get_info('internal_encoding');

// လက်ရှိ encoding မပါလျှင် UTF-8,ပြောင်းရန်ကြိုးစားပါ
if ($currentEncoding !== 'UTF-8') {
    echo "လက်ရှိဇာတ်ကောင် encoding ဖြစ်ပါတယ်:$currentEncoding,ကူးပြောင်း UTF-8 ကုဒ်...<br>";

    // တရုတ်စာသားရှိတယ်ဆိုပါစို့
    $chineseText = "ဒါကတရုတ်စာသားပါ";

    // ကူးပြောင်း UTF-8 ကုဒ်
    $utf8Text = mb_convert_encoding($chineseText, 'UTF-8', $currentEncoding);

    echo "စာသား:$utf8Text";
} else {
    echo "当前字符ကုဒ်已经是 UTF-8,တိုက်ရိုက်စာသား process。<br>";
}
?>

ဤဥပမာတွင် MB_Get_info မှတဆင့်လက်ရှိ internal charning encoding ကို ဦး စွာ ဦး စွာယူပါ။ ၎င်းသည် UTF-8 encoding သို့ပြောင်းရန် MB_ConVert_encoding function ကိုအသုံးပြုသည်။ ၎င်းသည်တရုတ်, အင်္ဂလိပ်သို့မဟုတ်အခြားဘာသာစကားများဖြင့်စာသားများပါ 0 င်သောစာသားများပြုလုပ်နေခြင်းရှိမရှိ encoding အမှားများကိုရှောင်ရှားနိုင်သည်။

4 ။ URLs များပြုလုပ်ရန် MB_GEGET_INFO ကို သုံးပါ

အချို့ဖြစ်ရပ်များတွင် URLs များနှင့်ဘာသာစကားမျိုးစုံသောစာသားများကိုကိုင်တွယ်ရန်လိုအပ်နိုင်သည်။ ဤအမှုများတွင် MB_Get_info ကိုအသုံးပြုပြီး URL ကိုမှန်ကန်စွာ encoded ကြောင်းသေချာစေရန်ကူညီနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်ပြင်ပဝက်ဘ်ဆိုက်မှယူထားသောစာသားအချို့ကိုလုပ်ဆောင်နေပါက URL တွင် encoding ကိုအတည်ပြုရန်လိုအပ်နိုင်သည်။

အောက်ဖော်ပြပါအတိုင်းပြင်ပအရင်းအမြစ်ကိုညွှန်ပြသော URL ရှိသည်ဆိုပါစို့။

 $url = "http://example.com/path/to/resource";

URL သည်မှန်ကန်သော encoding ကိုမှန်ကန်စွာအသုံးပြုနေသည်ကိုသေချာစေရန် MB_Get_info ကို အသုံးပြု. လက်ရှိပတ်ဝန်းကျင်၏ output encoding ကိုစစ်ဆေးရန်နှင့်၎င်းကိုလိုအပ်သလိုညှိရန်အသုံးပြုနိုင်သည်။ ဤတွင် URL encoding ကိုကိုင်တွယ်ပုံဥပမာတစ်ခုမှာ -

 <?php
// 获取当前的输出ကုဒ်
$currentOutputEncoding = mb_get_info('output_encoding');

// ငါတို့ယူဆ URL
$url = "http://example.com/path/to/resource";

// 如果输出ကုဒ်不是 UTF-8,ပေြာင်း URL ကုဒ်
if ($currentOutputEncoding !== 'UTF-8') {
    echo "当前输出ကုဒ်为:$currentOutputEncoding,正在ပေြာင်း URL ကုဒ်为 UTF-8...<br>";

    // ပေြာင်း URL 中的字符ကုဒ်
    $encodedUrl = mb_convert_encoding($url, 'UTF-8', $currentOutputEncoding);

    echo "ပေြာင်း后的 URL:$encodedUrl";
} else {
    echo "当前输出ကုဒ်已经是 UTF-8,တိုက်ရိုက်အသုံးပြုပါ URL。<br>";
}
?>

ဤဥပမာတွင်လက်ရှိ output encoding ကိုစစ်ဆေးပြီး URL ကိုလိုအပ်သလို UTF-8 encoding သို့ပြောင်းပါ။ လျှောက်လွှာတွင်ပါ 0 င်သောစာသားနှင့် urls များအားလုံးမှန်ကန်စွာဖော်ပြရန်သေချာစေရန်၎င်းသည်မရှိမဖြစ်လိုအပ်သည်။

5 ။ အကျဉ်းချုပ်

MB_GEget_info သည် Configure encoding နှင့်ပတ်သက်သော configuration encoding နှင့်ပတ်သက်သော configuration information ကိုရရှိစေရန်နှင့်ဘာသာစကားမျိုးစုံသောစာသားများကိုမတူညီသောပတ်ဝန်းကျင်တွင်မှန်ကန်စွာလုပ်ဆောင်နိုင်အောင်ကူညီပေးနိုင်သည့်အလွန်အသုံးဝင်သော PHP function တစ်ခုဖြစ်သည်။ ၎င်းနှင့်အတူကျွန်ုပ်တို့သည်ဇာတ်ကောင် encoding settings များကိုအလွယ်တကူစစ်ဆေးရန်နှင့်ညှိနှိုင်းနိုင်ပြီးဇာတ်ကောင် encoding ပြ issues နာများကိုရှောင်ရှားနိုင်ပြီး application သည်အကြောင်းအရာများကိုဘာသာစကားအမျိုးမျိုးဖြင့်ကိုင်တွယ်နိုင်သည်။

၎င်းသည်ပြင်ပ URL တစ်ခုတွင်ဒေတာဘေ့စ်သို့မဟုတ်ဘာသာစကားမျိုးစုံစာသားတွင်မျိုးစုံအချက်အလက်များကိုထုတ်ဖော်နေသလား, မှန်ကန်သောစာလုံးပေါင်း encoding သည်မရှိမဖြစ်လိုအပ်သည်။ MB_GEGET_INFO function ကို အသုံးပြု. ကျွန်ုပ်တို့သည်လက်ရှိ encoding information ကိုအလွယ်တကူရရှိနိုင်ပါသည်။ စာသားအကြောင်းအရာများ၏တိကျမှန်ကန်မှုနှင့်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်သင့်လျော်သော encoding ပြောင်းလဲခြင်းကိုပြုလုပ်နိုင်သည်။