ဘာသာစကားမျိုးစုံဝက်ဘ်ဆိုက်များကိုတီထွင်ခြင်းသို့မဟုတ်ပြင်ပဒေတာအရင်းအမြစ်များကိုပြုပြင်သည့်အခါဇာတ်ကောင် encoding ရှုပ်ထွေးမှုများသည်ခေါင်းကိုက်ခြင်းဖြစ်သည်။ အကယ်. encoding settings သည်မမှန်ကန်ပါကအနည်းဆုံး barbled code သည်အနည်းဆုံးဖြစ်လိမ့်မည်။
PHP တွင် Mbstring Extension သည် MB_Get_info () သည် encoding ပြ problems နာများအတွက်အလွန်အသုံးဝင်သောကိရိယာများအတွက်လုပ်ဆောင်မှုများစွာကိုပြုလုပ်နိုင်သည်။
MB_GET_INFO () သည်လက်ရှိ Multibyte String Studing ၏ configuration information ကိုရရှိရန် PHP Mbstring extension တွင် function တစ်ခုဖြစ်သည်။
၎င်းသည်လက်ရှိ internal encoding, http inputprod encoding, output encoding, ဘာသာစကားချိန်ညှိချက်များစသဖြင့်ပြန်ပို့နိုင်သည်။
function ကိုလက်မှတ်သည်အလွန်ရိုးရှင်းပါသည်။
array mb_get_info ([ string $type = "all" ] )
အကယ်. အဘယ်သူမျှမ parameter တွေကိုမကုန်လျှင် configuration information အားလုံးကိုပုံမှန်အားဖြင့်ပြန်ပို့လိမ့်မည်။ အကယ်. သင်သည် "internal_encoding" ကဲ့သို့သောအမျိုးအစားကိုဖြတ်သန်းပါကသက်ဆိုင်ရာသတင်းအချက်အလက်များကိုသာပြန်လည်ပေးလိမ့်မည်။
PHP သည် Default Encoding မှအထူးသဖြင့် UTF-8, GBK နှင့် Shift-JIS ကဲ့သို့သော Byti-byte encodings များကိုကိုင်တွယ်သောအခါ "အထိခိုက်မခံသော encodings" သည်အထူးသဖြင့် UTF-8, GBK JIS,
ဘုံအကြောင်းပြချက်များမှာ -
Input encoding သည် script processing နှင့်ကိုက်ညီမှုမရှိပါ
output ၏ encoding settings သည်မမှန်ကန်ပါ
ဒေတာဘေ့စ်ဆက်သွယ်မှုကာလအတွင်း encoding အမှားများ
ဆာဗာမူလဒေသဆိုင်ရာနေရာများ
ဤအချိန်တွင် encoding ကိုလက်ရှိပတ်ဝန်းကျင်တွင်အသုံးပြုသည်ကိုသင်မသိပါကမှန်ကန်သောဆေးကိုသတ်မှတ်ရန်ခက်ခဲလိမ့်မည်။ နှင့် mb_get_info () ကျွန်တော်တို့ကိုရှာဖွေရန်ကူညီပေးနိုင်ပါသည်။
ပြ problems နာများကိုရှာဖွေရန် MB_Get_info ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုမှာဖော်ပြထားသည်။
<?php
// လက်ရှိ Multibyte အပြောင်းအလဲနဲ့အတွက် configurations အားလုံးကိုကြည့်ပါ
$info = mb_get_info();
print_r($info);
// ပြည်တွင်းရေး coding အပေါ်အာရုံစူးစိုက်
echo "Internal Encoding: " . mb_internal_encoding() . PHP_EOL;
// encoding ကိုသတ်မှတ်ပါ UTF-8,concled code ကိုရှောင်ကြဉ်ပါ
mb_internal_encoding("UTF-8");
// နောက်တစ်ခါစစ်ဆေးပါ
echo "New Internal Encoding: " . mb_internal_encoding() . PHP_EOL;
?>
output ကိုဆင်တူသည် -
Array
(
[internal_encoding] => UTF-8
[http_output] => UTF-8
[http_input] => UTF-8
[language] => neutral
...
)
Internal Encoding: UTF-8
New Internal Encoding: UTF-8
internal_encoding သည် UTF-8 မဟုတ်ကြောင်းသင်တွေ့ရှိပါက (ဥပမာ ISO-8859-1 ), ၎င်းသည် garbled code ၏အရင်းအမြစ်ဖြစ်သည်။
MB_Internal_encoding ("UTF-8") နှင့်တိုက်ရိုက်ပြန်လည်စတင်ခြင်းအားဖြင့်,
သင့်တွင်ရိုးရှင်းသော interface တစ်ခုရှိသည်ဆိုပါစို့။
<?php
header('Content-Type: text/html; charset=UTF-8');
// လက်ရှိပြည်တွင်းရေးကုဒ်ကိုစစ်ဆေးပါ
if (mb_internal_encoding() !== 'UTF-8') {
mb_internal_encoding('UTF-8');
}
// အသုံးပြုသူ input ကိုယူဆ(ဖြစ်ကောင်းပုံစံကနေ、interface ကိုစသည်တို့)
$user_input = "မင်္ဂလာပါ,ကမ်ာဘ!";
// ထုတ်လုပ်ခြင်း
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
?>
GB2312 ကဲ့သို့သောအခြား encodings များကိုအသုံးပြုသူသည်အခြား encodings များကိုလက်အောက်ခံလျှင်ပင်ဆာဗာသည်၎င်းတို့အား UTF-8 သို့တည့်တည့်လုပ်ခြင်းနှင့်၎င်းတို့အားထုတ်ယူခြင်းကိုအလွန်နည်းပါးသည်။
အကယ်. ပိုမိုပြည့်စုံသော Encoding ရှာဖွေတွေ့ရှိမှုလိုအပ်ပါက၎င်းကိုအလိုအလျောက်ခွဲခြားသတ်မှတ်ရန်၎င်းကို mb_detect_encoding () ဖြင့်လည်းအသုံးပြုနိုင်သည်။
MB_GET_INFO () နှင့် MBString ၏အသုံးပြုမှုအကြောင်းပိုမိုသိလိုပါကတရားဝင်စာရွက်စာတမ်းများကိုသင်ရည်ညွှန်းနိုင်သည်။
https://gitbox.net/php/php/hmaual/zh/function.mbget-info.php