လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_GEget_info မှရရှိသော encoding အချက်အလက်များသည်အမှန်တကယ်အခြေအနေနှင့်မကိုက်ညီပါ

MB_GEget_info မှရရှိသော encoding အချက်အလက်များသည်အမှန်တကယ်အခြေအနေနှင့်မကိုက်ညီပါ

gitbox 2025-05-11

PHP ကို ​​Enter encoding processing အတွက် PHP ကိုအသုံးပြုသောအခါ MB_Get_info function သည် encoding type ကဲ့သို့သော Multibyte ဇာတ်ကောင်အစုံနှင့်သက်ဆိုင်သောသတင်းအချက်အလက်များကိုပြန်ပို့နိုင်သည့်အသုံးများသောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော် developer များစွာသည် MB_Get_info ကို အသုံးပြုသောအခါပြ a နာတစ်ခုနှင့်ကြုံတွေ့ရလိမ့်မည်။ function မှပြန်လာသော encoding အချက်အလက်သည်အမှန်တကယ်ဇာတ်ကောင် encoding နှင့်မကိုက်ညီပါ။ ဤပြ problem နာသည်အထူးသဖြင့်ဘာသာစကားမျိုးစုံသို့မဟုတ်အထူးအက္ခရာများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါမမျှော်လင့်သောအပြုအမူအချို့ကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါးသည်ဤပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်ကိုလေ့လာလိမ့်မည်။

1 ။ MB_GET_INFO function ကိုခြုံငုံသုံးသပ်ချက်

MB_GEget_info သည် PHP တွင်လက်ရှိ Multibyte ဇာတ်ကောင်များနှင့်ပတ်သက်သည့်ချိန်ညှိချက်များအတွက် PHP တွင် Multibyte ဇာတ်ကောင် set function ဖြစ်သည်။ များသောအားဖြင့်၎င်းသည် encoding, detection နည်းလမ်းများစသည့်အချက်အလက်အမျိုးမျိုးပါသည့်သတင်းအချက်အလက်အမျိုးမျိုးပါသည့် array တစ်ခုပါ 0 င်သည်။ ဤလုပ်ဆောင်မှု၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $info = mb_get_info();
print_r($info);

၎င်းသည်လက်ရှိ Multibyte ဇာတ်ကောင်အစုံ၏ encoding အမျိုးအစားကဲ့သို့သောသတင်းအချက်အလက်များပါ 0 င်သည့် array တစ်ခုသို့ပြန်လာလိမ့်မည်။

2 ။ ပြ problem နာပေါ်ပေါက်လာသည်

MB_Get_info မှပြန်လာသော encoding အချက်အလက်များအတွက်အကြောင်းပြချက်များစွာရှိနိုင်သည်။ ဘုံအကြောင်းပြချက်ဆိုသည်မှာ PHP ပတ်ဝန်းကျင်တွင်ပုံမှန်ဇာတ်ကောင်သတ်မှတ်ချက်များသည်အမှန်တကယ်အသုံးပြုသောဇာတ်ကောင်အစုံနှင့်မကိုက်ညီသောကြောင့်ဖြစ်သည်။ ဥပမာအားဖြင့်, ကွဲပြားခြားနားသောဇာတ်ကောင် set ကိုဆာဗာ၏ Php.ini configuration file တွင်သတ်မှတ်နိုင်သည်။ MB_Get_info မှပြန်လာသောအချက်အလက်များသည်အမှန်တကယ် encoding နှင့်မကိုက်ညီပါ။

3 ။ ဖြေရှင်းနည်း

3.1 ပုံမှန်ဇာတ်ကောင်သတ်မှတ်ချက်ကိုစစ်ဆေးပါ

ပထမ ဦး စွာ PHP ၏ပုံမှန်ဇာတ်ကောင် setting ကိုစစ်ဆေးပါ။ လက်ရှိ internal encoding settings ကို mb_internal_encoding () function ကိုမှတဆင့်ကြည့်ရှုနိုင်သည်။ အကယ်. ၎င်းသည်သင်၏အမှန်တကယ်လိုအပ်ချက်များနှင့်မကိုက်ညီပါက MB_internal_encoding () ကို ကိုယ်တိုင်ကိုယ်ကျသတ်မှတ်ရန်အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်, သင် UTF-8 ကို internal encoding လုပ်လိုပါကသင်လုပ်နိုင်သည်။

 mb_internal_encoding("UTF-8");

သင်၏ script နှင့် server ပတ်ဝန်းကျင်ရှိဇာတ်ကောင်သတ်မှတ်ချက်များသည်တသမတ်တည်းဖြစ်ကြောင်းသေချာအောင်လုပ်ပါ။

3.2 ရှင်းရှင်းလင်းလင်း encoding ကိုဖော်ပြပါ

MB_GEGET_INFO function ကိုသင်အသုံးပြုသောအခါသင်အတိအလင်းမေးမြန်းလိုသောစာလုံးကိုသေချာစွာဖော်ပြရန်သေချာပါစေ။ ဥပမာအားဖြင့်, သင်သည် UTF-8 encoded text တွင်အလုပ်လုပ်နေကြောင်းသင်သိပါက MB_Get_info ဟုခေါ်ဆိုသည့်အခါ encoding ကိုသင်သတ်မှတ်နိုင်သည်။

 $info = mb_get_info('UTF-8');
print_r($info);

၎င်းသည်ပုံမှန်ဇာတ်ကောင်သတ်မှတ်ချက်ကြောင့်ဖြစ်ပေါ်လာသောရှေ့နောက်မညီမှုများမှရှောင်ရှားသည်။

3.3 ကွဲပြားခြားနားသော input အရင်းအမြစ်များကိုကိုင်တွယ်ပါ

ပြင်ပ API မှပြန်လာသောအသုံးပြုသူ (သို့) အချက်အလက်များကိုဖြည့်ထားသောအချက်အလက်များမှတင်ပြသောပုံစံဒေတာများကဲ့သို့သောအရင်းအမြစ်များကိုထုတ်ထည့်သောအခါ, သင်အချက်အလက်ကိုက်ညီမှုကိုသေချာစေရန်သင်လိုချင်သောစည်းလုံးသော encoding သို့ပြောင်းလဲရန် MB_ConVert_encoding () function ကိုသုံးနိုင်သည်။

 $input = mb_convert_encoding($input, 'UTF-8', 'auto');

Auto Parameter သည် MB_ConVert_encoding ကို input encoding ကိုအလိုအလျောက်ရှာဖွေရန်နှင့်၎င်းကိုပြောင်းလဲရန်ခွင့်ပြုရန်ခွင့်ပြုသည်။

3.4 ဆာဗာနှင့် PHP configuration ကို

တစ်ခါတစ်ရံတွင်ဆာဗာသို့မဟုတ် PHP ၏ configuration files များရှိချိန်ညှိချက်များ ( PHP.INI ကဲ့သို့သော) သည်ဇာတ်ကောင်များကိုအသိအမှတ်ပြုနိုင်သည်။ ဆာဗာပတ် 0 န်းကျင်တွင် Mbstring extension ကိုမှန်ကန်စွာတပ်ဆင်ပြီး, ဇာတ်ကောင်သတ်မှတ်ချက်များသည်သင်၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသည်ကိုသေချာအောင်လုပ်ပါ။ PHPP.ini ရှိအောက်ပါ settings များကိုသင်ရှာဖွေ။ ညှိနိုင်သည်။

 mbstring.internal_encoding = UTF-8
mbstring.language = neutral

ဤချိန်ညှိချက်များသည် PPP scripts တွင်သတ်မှတ်ထားသည့် default character ကိုအကျိုးသက်ရောက်လိမ့်မည်။

3.5 ဖိုင်၏ BOM ကိုစစ်ဆေးပါ (byte order mark)

သင်၏ဖိုင်သည် BOM (Byte အမိန့်အမှတ်အသား) ကိုအသုံးပြုပါက၎င်းသည် MB_GEGET_INFO function မှရရှိသော encoding အချက်အလက်များကိုအကျိုးသက်ရောက်နိုင်သည်။ ဖိုင်တွင် BOM ရှိပါကရှာဖွေရန် fopen နှင့် Thead ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုသင်အသုံးပြုနိုင်သည်။ File encoding ကိုပြောင်းရန်နှင့် BOM ကိုဖယ်ရှားရန် MB_ConVert_encoding ကိုလည်းသင်အသုံးပြုနိုင်သည်။

4 ။ လက်တွေ့တွင်လျှောက်လွှာ

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်တွင် Code ရှိ encoding အချက်အလက်များသည်တိကျမှန်ကန်ကြောင်းသေချာစေရန်အထက်ပါဖြေရှင်းချက်ကိုသင်ပေါင်းစပ်နိုင်သည်။ ဥပမာအားဖြင့်, API မှအချက်အလက်များရသောအခါ MB_ConVert_encoding ကို script encoding နှင့်ကိုက်ညီစေရန် MB_ConVert_encoding ကိုသုံးပါ။ အကယ်. MB_Get_info သည် မှန်ကန်သော encoding ကိုမပြန်သေးပါက PHP configuration နှင့် encoding inform encoding အချက်အလက်များကိုစစ်ဆေးပါ,

 // ငါတို့ယူဆတယ်gitbox.net၏APIဒေတာကိုရယူပါ
$url = "https://api.gitbox.net/data";
$data = file_get_contents($url);
$data = mb_convert_encoding($data, 'UTF-8', 'auto');

// ထိုအခါ encoding သတင်းအချက်အလက်ရယူပါ
$info = mb_get_info('UTF-8');
print_r($info);

ဤနည်းအားဖြင့်အချက်အလက်များ၏ encoding သည်အမှန်တကယ်အခြေအနေနှင့်ကိုက်ညီရန်သေချာစေရန်ဖြစ်နိုင်သည်။