လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: SET_CHARSet ကိုအသုံးပြုနည်းကိုပုံမှန်ကွဲပြားခြားနားသောဘာသာစကားများကိုရရှိရန်ဘာသာစကားမျိုးစုံဝက်ဘ်ဆိုက်တွင်ပါ 0 င်သည်

MySQLI :: SET_CHARSet ကိုအသုံးပြုနည်းကိုပုံမှန်ကွဲပြားခြားနားသောဘာသာစကားများကိုရရှိရန်ဘာသာစကားမျိုးစုံဝက်ဘ်ဆိုက်တွင်ပါ 0 င်သည်

gitbox 2025-08-13

ဇာတ်ကောင်အစုံနှင့် encodings ကဘာတွေလဲ။

ဇာတ်ကောင်အစုံသည်စာလုံးများကိုသီးခြား encoded တန်ဖိုးများကိုမြေပုံများသိုလှောင်ရန်ကွန်ပျူတာများအသုံးပြုသောစနစ်ဖြစ်သည်။ encoding သည်စာလုံးများကို Binary Data ထဲသို့ထည့်ရန်ဇာတ်ကောင်များအဖြစ်ပြောင်းလဲရန်နည်းလမ်းဖြစ်သည်။ အသုံးများသောဇာတ်ကောင်အစုံများတွင် UTF-8, GBK, ISO-8859-1 စသည်တို့ပါဝင်သည်။

ဘာသာစကားမျိုးစုံ 0 ဘ်ဆိုဒ်များတွင် UTF-8 encoding ကိုများသောအားဖြင့်ဘာသာစကားစာလုံးအားလုံးနီးပါးကိုထောက်ပံ့ပေးပြီးကောင်းမွန်သောလိုက်လျောညီထွေဖြစ်နေသောကြောင့်ဖြစ်သည်။ UTF-8 သည်ကမ္ဘာပေါ်ရှိစာသားအားလုံးနီးပါးကိုကိုယ်စားပြုနိုင်သည့် variable-length character encoding ဖြစ်သည်။


MySQLI :: SET_CHARSet ကို ဘာကြောင့်လိုအပ်ရတာလဲ။

ဒေတာဘေ့စ်နှင့် PHP အကြားရှိအက်ခရာသင်္ကေတများသည်တသမတ်တည်းရှိရမည်။ ဥပမာအားဖြင့်, ဒေတာဘေ့စ်သည် UTF-8 Encoding နှင့် PHP ကိုအသုံးပြုပါကဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါ, ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါ, ဝက်ဘ်ဆိုက်တွင်အမှိုက်များပေါ်လာသည့်တရုတ်အကြောင်းအရာများကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားနိုင်သည်။

MySQLI :: SET_CHARSet သည် PHP နှင့် MySQL databases များအကြားရှိဇာတ်ကောင် encoding ကိုက်ညီမှုရှိစေရန်ဒီဇိုင်းပြုလုပ်ထားသည်။ ဤနည်းလမ်းကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် MySQL ဒေတာဘေ့စ်ဆက်သွယ်မှုကို အသုံးပြု. ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးနောက်သတ်သတ်မှတ်မှတ်ဇာတ်ကောင်ကိုအသုံးပြုရန်အတွက် Set MySQL ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်နိုင်ပြီးကိုက်ညီမှုမရှိသော encoding ကြောင့်ဖြစ်ပေါ်လာသောပြ problems နာများကိုရှောင်ရှားနိုင်သည်။


MySQLI :: set_charset ကို ဘယ်လိုသုံးရမလဲ။

MySQLI :: set_charet နည်းလမ်းကိုအသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပါသည်။ MySQLI မှတစ်ဆင့် MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ထားပါသည်။

 <span><span><span class="hljs-meta">&lt;?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>-&gt;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>-&gt;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>-&gt;</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>-&gt;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">?&gt;</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">&lt;<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>&gt;
</span></span>

ဤနည်းအားဖြင့်ရှေ့တွင်စာမျက်နှာသည်အကြောင်းအရာကို UTF-8 encoding နှင့်အညီအကြောင်းအရာများကိုခွဲခြမ်းစိတ်ဖြာပါကဘာသာစကားအမျိုးမျိုးဖြင့်စာလုံးများကိုပုံမှန်ပြသနိုင်သည်။


ဘာသာစကားမျိုးစုံဒေတာများကိုဒေတာဘေ့စ်တစ်ခုတွင်သိုလှောင်ရန် UTF-8 ကိုသုံးပါ

ဒေတာများကိုဒေတာဘေ့စ်ရှိဘာသာစကားအမျိုးမျိုးဖြင့်စာလုံးများကိုမှန်ကန်စွာသိမ်းဆည်းနိုင်ရန်အတွက်ဒေတာဘေ့စ်ရှိဘာသာစကားအမျိုးမျိုးဖြင့်သိမ်းဆည်းထားနိုင်ရန်အတွက် 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 ကိုအထောက်အပံ့ပေးပြီးဘာသာစကားအမျိုးမျိုးမှစာလုံးများကိုသိုလှောင်ထားနိုင်သည်။


မကြာခဏမေးသောမေးခွန်းများနှင့်ဖြေရှင်းနည်းများ

  1. အမှိုက်သရိုက်ကုဒ်ပြ problem နာ:
    concled code သည်ဇာတ်ကောင် set ကိုသတ်မှတ်ပြီးသည့်နောက်တွင်ပေါ်လာပါကဒေတာဘေ့စ်၏ပုံမှန်ဇာတ်ကောင်အစုကို UTF-8 ဖြစ်သည်ကိုပထမဆုံးစစ်ဆေးပါ။ ထို့အပြင်စာမျက်နှာ၏ HTML encoding ကို UTF-8 ကိုသတ်မှတ်ရန်သေချာစေရန်လိုအပ်သည်။ အကယ်. ၎င်းကိုမှန်ကန်စွာသတ်မှတ်ထားပါက, ပြ the နာဆက်ရှိနေပါက Database စားပွဲခုံများနှင့်လယ်ကွင်းများအတွက် set settings ကိုစစ်ဆေးနိုင်သည်။

  2. ဇာတ်ကောင်ကိုက်ညီမှုကိုသတ်မှတ်:
    ဒေတာဘေ့စ်နှင့် PHP ဆက်သွယ်မှု၏ဇာတ်ကောင်အစုံသည်ကိုက်ညီမှုမရှိပါကစာလုံးများကိုမှန်ကန်စွာပြသမည်မဟုတ်ပါ။ နှစ်ခုအကြားရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန် MySQLI :: set_charet နည်းလမ်းကိုသုံးပါ။

  3. 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