ဇာတ်ကောင်အစုံသည်စာလုံးများကိုသီးခြား encoded တန်ဖိုးများကိုမြေပုံများသိုလှောင်ရန်ကွန်ပျူတာများအသုံးပြုသောစနစ်ဖြစ်သည်။ encoding သည်စာလုံးများကို Binary Data ထဲသို့ထည့်ရန်ဇာတ်ကောင်များအဖြစ်ပြောင်းလဲရန်နည်းလမ်းဖြစ်သည်။ အသုံးများသောဇာတ်ကောင်အစုံများတွင် UTF-8, GBK, ISO-8859-1 စသည်တို့ပါဝင်သည်။
ဘာသာစကားမျိုးစုံ 0 ဘ်ဆိုဒ်များတွင် UTF-8 encoding ကိုများသောအားဖြင့်ဘာသာစကားစာလုံးအားလုံးနီးပါးကိုထောက်ပံ့ပေးပြီးကောင်းမွန်သောလိုက်လျောညီထွေဖြစ်နေသောကြောင့်ဖြစ်သည်။ UTF-8 သည်ကမ္ဘာပေါ်ရှိစာသားအားလုံးနီးပါးကိုကိုယ်စားပြုနိုင်သည့် variable-length character encoding ဖြစ်သည်။
ဒေတာဘေ့စ်နှင့် PHP အကြားရှိအက်ခရာသင်္ကေတများသည်တသမတ်တည်းရှိရမည်။ ဥပမာအားဖြင့်, ဒေတာဘေ့စ်သည် UTF-8 Encoding နှင့် PHP ကိုအသုံးပြုပါကဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါ, ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါ, ဝက်ဘ်ဆိုက်တွင်အမှိုက်များပေါ်လာသည့်တရုတ်အကြောင်းအရာများကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားနိုင်သည်။
MySQLI :: SET_CHARSet သည် PHP နှင့် MySQL databases များအကြားရှိဇာတ်ကောင် encoding ကိုက်ညီမှုရှိစေရန်ဒီဇိုင်းပြုလုပ်ထားသည်။ ဤနည်းလမ်းကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် MySQL ဒေတာဘေ့စ်ဆက်သွယ်မှုကို အသုံးပြု. ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးနောက်သတ်သတ်မှတ်မှတ်ဇာတ်ကောင်ကိုအသုံးပြုရန်အတွက် Set MySQL ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်နိုင်ပြီးကိုက်ညီမှုမရှိသော encoding ကြောင့်ဖြစ်ပေါ်လာသောပြ problems နာများကိုရှောင်ရှားနိုင်သည်။
MySQLI :: set_charet နည်းလမ်းကိုအသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပါသည်။ MySQLI မှတစ်ဆင့် MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ထားပါသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"ဆက်သွယ်မှုမအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// ဇာတ်ကောင်ကိုသတ်မှတ်ပါ UTF-8</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-string">"utf8"</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"အမှား:ဇာတ်ကောင် set ကိုသတ်မှတ်မရနိုင်ပါ %s\n"</span></span><span>, </span><span><span class="hljs-variable">$mysqli</span></span><span>->error);
</span><span><span class="hljs-keyword">exit</span></span><span>();
}
</span><span><span class="hljs-comment">// ဒေတာဘေ့စစုံစမ်းရေးနှင့်အခြားစစ်ဆင်ရေးလုပ်ဆောင်ပါ...</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
အထက်ဖော်ပြပါကုဒ်တွင် $ MySQLI-> Set_charet ("UTF8") သည် ဒေတာဘေ့စ်၏ဆက်သွယ်မှု၏ဇာတ်ကောင်အစုကို UTF-8 သို့သတ်မှတ်သည်။ ၎င်းသည်ဒေတာဘေ့စ်မှအချက်အလက်များကိုဖတ်ရှုခြင်းသို့မဟုတ်ရေးသားထားသောအချက်အလက်များကို UTF-8 encoding အဖြစ်မှန်ကန်စွာပြုလုပ်နိုင်သည်။
ဘာသာပေါင်းစုံဝက်ဘ်ဆိုက်များသည်များသောအားဖြင့်တရုတ်, အင်္ဂလိပ်, ဂျပန်စသည်ဖြင့်ဘာသာစကားမျိုးစုံကိုဘာသာစကားမျိုးစုံဖြင့်သိမ်းဆည်းထားလေ့ရှိသည်။ MySQLI :: SET_CHARSet ကို Set_charet ကို တသမတ်တည်းသော encoding ကိုသေချာစေရန်အတွက် PHP ၏ဒေတာဘေ့စ်ဆက်သွယ်မှုကုဒ်တွင်သတ်မှတ်နိုင်သည်။ ထို့အပြင်ဇာတ်ကောင် set ကိုရှေ့တန်းစာမျက်နှာတွင်သတ်မှတ်ထားရန်လိုအပ်သည်။ များသောအားဖြင့်ဇာတ်ကောင်အစုံသည် utf-8 အဖြစ်သတ်မှတ်သည် <meta> tag ကို html ကိုသတ်မှတ်ခြင်းဖြင့်သတ်မှတ်သည်။
<span><span><span class="hljs-tag"><<span class="hljs-name">meta</span></span></span><span> </span><span><span class="hljs-attr">charset</span></span><span>=</span><span><span class="hljs-string">"UTF-8"</span></span><span>>
</span></span>
ဤနည်းအားဖြင့်ရှေ့တွင်စာမျက်နှာသည်အကြောင်းအရာကို UTF-8 encoding နှင့်အညီအကြောင်းအရာများကိုခွဲခြမ်းစိတ်ဖြာပါကဘာသာစကားအမျိုးမျိုးဖြင့်စာလုံးများကိုပုံမှန်ပြသနိုင်သည်။
ဒေတာများကိုဒေတာဘေ့စ်ရှိဘာသာစကားအမျိုးမျိုးဖြင့်စာလုံးများကိုမှန်ကန်စွာသိမ်းဆည်းနိုင်ရန်အတွက်ဒေတာဘေ့စ်ရှိဘာသာစကားအမျိုးမျိုးဖြင့်သိမ်းဆည်းထားနိုင်ရန်အတွက် UTF-8 ကို အသုံးပြု. ဒေတာဘေ့စ်၏စားပွဲနှင့်ကွက်လပ်များကိုသေချာစေရန်လိုအပ်သည်။ အောက်ပါ SQL command ဖြင့်စားပွဲတစ်ခုဖန်တီးသောအခါ UTF-8 ကို ETF-8 သို့သတ်မှတ်သည့်စာလုံးကိုသင်သတ်မှတ်နိုင်သည်။
<span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> `content` (
`id` </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">NOT</span></span><span> </span><span><span class="hljs-keyword">NULL</span></span><span> AUTO_INCREMENT </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
`title` </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">255</span></span><span>) </span><span><span class="hljs-keyword">NOT</span></span><span> </span><span><span class="hljs-keyword">NULL</span></span><span>,
`description` TEXT
) ENGINE</span><span><span class="hljs-operator">=</span></span><span>InnoDB </span><span><span class="hljs-keyword">DEFAULT</span></span><span> CHARSET</span><span><span class="hljs-operator">=</span></span><span>utf8;
</span></span>
ပုံမှန် charset = UTF8 ကို သတ်မှတ်ခြင်းဖြင့်ဇယားသည် UTF-8 encoding ကိုအထောက်အပံ့ပေးပြီးဘာသာစကားအမျိုးမျိုးမှစာလုံးများကိုသိုလှောင်ထားနိုင်သည်။
အမှိုက်သရိုက်ကုဒ်ပြ problem နာ:
concled code သည်ဇာတ်ကောင် set ကိုသတ်မှတ်ပြီးသည့်နောက်တွင်ပေါ်လာပါကဒေတာဘေ့စ်၏ပုံမှန်ဇာတ်ကောင်အစုကို UTF-8 ဖြစ်သည်ကိုပထမဆုံးစစ်ဆေးပါ။ ထို့အပြင်စာမျက်နှာ၏ HTML encoding ကို UTF-8 ကိုသတ်မှတ်ရန်သေချာစေရန်လိုအပ်သည်။ အကယ်. ၎င်းကိုမှန်ကန်စွာသတ်မှတ်ထားပါက, ပြ the နာဆက်ရှိနေပါက Database စားပွဲခုံများနှင့်လယ်ကွင်းများအတွက် set settings ကိုစစ်ဆေးနိုင်သည်။
ဇာတ်ကောင်ကိုက်ညီမှုကိုသတ်မှတ်:
ဒေတာဘေ့စ်နှင့် PHP ဆက်သွယ်မှု၏ဇာတ်ကောင်အစုံသည်ကိုက်ညီမှုမရှိပါကစာလုံးများကိုမှန်ကန်စွာပြသမည်မဟုတ်ပါ။ နှစ်ခုအကြားရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန် MySQLI :: set_charet နည်းလမ်းကိုသုံးပါ။
MySQL ဗားရှင်းကိုထောက်ခံသည်။
သင်၏ MySQL ဗားရှင်းသည် UTF-8 သို့မဟုတ် UTF8MB4 ကိုထောက်ခံကြောင်းသေချာအောင်လုပ်ပါ။ အောက်ပါ command မှတဆင့်လက်ရှိဒေတာဘေ့စ်မှပံ့ပိုးထားသော character set ကိုကြည့်ရှုနိုင်သည်။
<span><span><span class="hljs-keyword">SHOW</span></span><span> </span><span><span class="hljs-type">CHARACTER</span></span><span> </span><span><span class="hljs-keyword">SET</span></span><span>;
</span></span>
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli