PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်မှဖတ်ရှုသည့်အဖုံးများကိုဖတ်ရှုသောအခါ၎င်းသည်များသောအားဖြင့်ကိုက်ညီသောဇာတ်ကောင် encoding settings နှင့်ဆက်စပ်နေသည်။ အထူးသဖြင့်တရုတ်ပတ် 0 န်းကျင်များတွင်ဘုံပြ problem နာတစ်ခုမှာဒေတာဘေ့စ်သည် UTF-8 encoding ကိုအသုံးပြုသည်။ ဤဆောင်းပါးသည်ဒေတာဘေ့စ် output တွင် barbled code ပြ problem နာကိုဖြေရှင်းရန် PHP တွင် Utf8_Decode function ကို PHP တွင်မည်သို့အသုံးပြုရမည်ကိုအာရုံစိုက်မည်။
carbled code ၏အဓိကအကြောင်းအရင်းသည်များသောအားဖြင့်စာလုံးများ encoding တွင်မတိုက်ဆိုင်မှုတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်:
ဒေတာဘေ့စ်သည် UTF-8 encoding တွင်ဒေတာများကိုသိုလှောင်ထားသည်
စာမျက်နှာသို့မဟုတ် script သည် encoding ကိုမှန်ကန်စွာမသတ်မှတ်ထားပါ။ အခြား encodings များကိုပုံမှန်အားဖြင့်အသုံးပြုသည်။
အချက်အလက်များကိုဖတ်သည့်အခါမည်သည့်မှန်ကန်သော encoding ပြောင်းလဲခြင်းမပြုလုပ်ခဲ့ပါ
အကောင်းဆုံးဖြေရှင်းချက်မှာ -
ဒေတာဘေ့စ် connection (ဥပမာ UTF-8 ကဲ့သို့သော) တွင်အက်ခရာ encoding သည်မှန်ကန်ကြောင်းသေချာပါစေ။
စာမျက်နှာကြေငြာချက် UTF-8 encoding ( <Meta Charset = "Utf-8"> )
စာဖတ်ခြင်းနှင့် output ကိုတသမတ်တည်း encoding format ကို
သို့သော်အချို့သောပတ်ဝန်းကျင်တွင်အချက်အလက်များသည် UTF-8 encoding ပြီးသားဖြစ်သော်လည်း Utf-8 string ကို oth-8 string ကို iso-8859-1 encoding ကိုသုံးရန် Utf8_Decode function ကိုသုံးနိုင်သည်။
UTF8_Decode function ၏လုပ်ဆောင်ချက်မှာ UTF-8 encoded strings ကို ISO-8859-1 encoded strings သို့ပြောင်းရန်ဖြစ်သည်။ ၎င်း၏အဓိပ္ပါယ်ဖွင့်ဆိုချက် -
string utf8_decode(string $data);
utf8_decode သည် ISO-8859-1 encoding အတွင်းရှိအက္ခရာများကိုသာပြောင်းလဲနိုင်သည် ။
သင်၏ဒေတာဘေ့စ်အကြောင်းအရာသည် UTF-8 encoding ဖြစ်သည်ဟုယူဆသော်လည်းဝက်ဘ်စာမျက်နှာသည် ISO-8859-1 encoding ကိုအသုံးပြုသည် (သို့မဟုတ်အခြား encodings သည် ISO-8859-1 နှင့်သဟဇာတဖြစ်ပါသည် ။
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှု
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
// ဆက်သွယ်မှုဇာတ်ကောင် encoding ကိုသတ်မှတ်ပါutf8
$mysqli->set_charset("utf8");
// ဒေတာရှာဖွေမှုဒေတာ
$result = $mysqli->query("SELECT content FROM articles WHERE id=1");
if ($row = $result->fetch_assoc()) {
// ဝက်ဘ်စာမျက်နှာကိုအသုံးပြုပါISO-8859-1ကုဒ်,ဖြစ်ဖို့လိုတယ်UTF-8ကူးပြောင်းISO-8859-1
$content = utf8_decode($row['content']);
echo $content;
} else {
echo "ဒေတာမတွေ့ပါ";
}
$mysqli->close();
?>
အထက်ပါကုဒ်၌:
ဒေတာဘေ့စ်မှအချက်အလက်များဖတ်နေသည့်အချက်အလက်များကို UTF-8 format ဖြင့် $ MySQLI-> Set_charet ("UTF8") မှတဆင့်ဖြစ်သည်။
UTF8_Decode ကို အသုံးပြု. UTF-8 encoding ကို iso-8859-1 သို့ပြောင်းပါ
ISO-8859-1 ကို အသုံးပြု. စာမျက်နှာကို encload လုပ်သည့်အခါ output data ကို carble မရလိမ့်မည်။
0 က်ဘ်စာမျက်နှာသည် UTF-8 encoding ကိုအသုံးပြုပါက (ဝဘ်စာမျက်နှာအများစုသည်ယခုအချိန်တွင်ယခုအချိန်တွင်ယခုတွင်ရှိနေသည်) များသောအားဖြင့်သင်သည်များသောအားဖြင့် UTF8_Decode ကို သုံးရန်မလိုအပ်ပါ။
Database, PPP scripts နှင့် web စာမျက်နှာ encoding ကို encoding ပြောင်းလဲခြင်း၏ရှုပ်ထွေးမှုကိုလျှော့ချရန် UTF-8 သို့ UTF-8 သို့ပေါင်းစည်းရန်ကြိုးစားပါ။
ISO-8859-1 encoding ပတ်ဝန်းကျင်နှင့်သဟဇာတဖြစ်လျှင် UTF8_Decode ကို သာအသုံးပြုသည်။
UTF8_Decode function သည် UTF-8 ကို ISO-8859-1 ကိုကိုင်တွယ်ရန်ရိုးရှင်းသောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်အပြောင်းအလဲများအရဒေတာဆိုင်ရာအချက်အလက်များကြောင့်ဖြစ်သောအချက်အလက်ခြွင်းချက်များကိုရှောင်ရှားရန်ခေတ်သစ်ဖွံ့ဖြိုးတိုးတက်မှုသည် UTF-8 encoding ကိုတစ်ပုံစံတည်း အသုံးပြု. အကြံပြုသည်။ အကယ်. သင်သည် code code ပြ problems နာများနှင့်ကြုံတွေ့ရသေးပါကဒေတာဘေ့စ် connection encoding နှင့် web page encoding နှစ်ခုလုံးမှပြ troubl နာကိုဖြေရှင်းရန်အကြံပြုပါသည်။