လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ရှိတရုတ်၏ garbleds ဇာတ်ကောင်များနှင့်ပြည့်စုံသောဖြေရှင်းနည်း - Garbled Chinese Names ၏ပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်ကိုသင်ပေးပါ

PHP ရှိတရုတ်၏ garbleds ဇာတ်ကောင်များနှင့်ပြည့်စုံသောဖြေရှင်းနည်း - Garbled Chinese Names ၏ပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်ကိုသင်ပေးပါ

M66 2025-11-06

PHP တွင်ကျောက်တုံးကျောက်မျက်ပြ problem နာ၏အကြောင်းရင်း

PHP ကိုတီထွင်သောအခါ, အကြောင်းပြချက်မှာများသောအားဖြင့်မကိုက်ညီသောဇာတ်ကောင်များဖြစ်သည်။ ဥပမာအားဖြင့်ဖိုင်သည် UTF-8 encoded မဟုတ်ဘဲဒေတာဘေ့စ်ဆက်သွယ်မှုကို UTF-8 သို့မသတ်မှတ်ပါ။ သို့မဟုတ် HTML စာမျက်နှာ header သည်မှန်ကန်သော encoding ကိုမကြေညာပါ။ Gibberish ကိုလုံးဝဖြေရှင်းရန်သော့ချက်သည်စီမံကိန်းတစ်လျှောက်လုံးတွင်တသမတ်တည်းသော coding ကိုသေချာစေရန်ဖြစ်သည်။

ဖိုင် encoding set

PHP file ၏ encoding format သည် UTF-8 (အဘိတ်) မရှိကြောင်း ဦး စွာသေချာအောင်လုပ်ပါ။ Editor ထဲရှိဖိုင်ကို UTF-8 encoding format ဟုခေါ်သောဖိုင်ကိုသိမ်းဆည်းပါ။ PHP file ၏အစတွင် output function မှတဆင့် output encoding ကိုသတ်မှတ်ပါ။

<?php
header('Content-Type: text/html; charset=utf-8');
?>

ဒေတာဘေ့စ် connection encoding ကိုသတ်မှတ်ပါ

အကယ်. သင်၏ PHP အစီအစဉ်သည် MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်ရန်လိုအပ်ပါကဆက်သွယ်မှုအပြီး UTF-8 encoding ကိုသတ်မှတ်ရန်သေချာပါစေ။ ဤအချက်သည်ဒေတာဘေ့စ်မှဖတ်။ ရေးသားထားသောတရုတ်အချက်အလက်များကိုကျောက်တုံးများပေါ်လာလိမ့်မည်မဟုတ်ပါ။

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
$conn-> set_charet ("UTF8");
>

HTML စာမျက်နှာ encoding ကိုသတ်မှတ်ပါ

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>တရုတ်ရိုးရာဇာတ်ကောင်ပြ problem နာ</title>
</head>
<body>
<?php
echo "မင်္ဂလာပါ,ကမ်ာဘ!";
?>
</body>
</html>

mb_convert_encoding function ကိုအသုံးပြု။ ပြောင်းလဲ

string ကိုယ်နှောင်းသည်ကိုက်ညီမှုမရှိပါက PHP ၏ MB_ConVert_encoding function ကို UTF-8 သို့ပြောင်းရန် PHP ၏ MB_ConVert_encoding function ကိုသုံးနိုင်သည်။

<?php
$str = "တရုတ်ရိုးရာဇာတ်ကောင်";
$str_utf8 = mb_convert_encoding($str, "UTF-8");
echo $str_utf8;
?>

HTTP header သတင်းအချက်အလက်များကိုသတ်မှတ်ပါ

မည်သည့်အကြောင်းအရာကိုမဆိုထုတ်ဖော်ပြောဆိုခြင်းမပြုမီ HTTP header အချက်အလက်များကို header function မှတဆင့်သတ်မှတ်ခြင်းသည် Onlading encoding type အမျိုးအစားကိုဖော်ပြရန်,

<?php
header('Content-Type: text/html; charset=utf-8');
echo "မင်္ဂလာပါ,ကမ်ာဘ!";
?>

အကျဉ်းချုပ်

carbled တရုတ်အမည်ကိုဖြေရှင်းရန်အဓိကအကြံအစည်မှာ "ဖိုင် encoding, database encoding, web page encoding နှင့် HTTP header encoding" utf-8 သို့ပေါင်းစည်းရန်ဖြစ်သည်။ Encoding သည်တသမတ်တည်းဖြစ်သရွေ့တရုတ်သည်တရုတ်များကိုပြုပြင်သည့်အခါ PHP သည်အမှိုက်ပုံးမရှိတော့ပါ။ ၎င်းသည် 0 က်ဘ်ဆိုက်၏သဟဇာတဖြစ်မှုကိုတိုးတက်စေရုံသာမကတရုတ်ကိုပိုမိုသဘာဝကျပြီးတိကျမှန်ကန်စေသည်။

မကြာသေးမီ ဆောင်းပါးများ