ICONV function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string iconv ( string $in_charset , string $out_charset , string $str )
$ in_charet : ဇာတ်ကောင် set ကိုရိုက်ထည့်ပါ
$ out_charet : output ဇာတ်ကောင်အစုံ
$ str : ပြောင်းရန် string ကို
ဥပမာအားဖြင့်, အကယ်. သင်သည် UTF-8 encoded string ကို GBK encoding သို့ပြောင်းရန်လိုအပ်ပါကအောက်ပါကုဒ်ကိုသုံးနိုင်သည်။
$input = "မင်္ဂလာပါ,ကမ်ာဘ!";
$output = iconv("UTF-8", "GBK", $input);
echo $output;
ICONV function ကိုအောင်မြင်စွာကွပ်မျက်ခံရလျှင်ပြောင်းလဲသွားသော string ကိုပြန်ပို့သည်။ ပြောင်းလဲခြင်းမအောင်မြင်ပါက မှားယွင်းစွာ ပြန်လာသည်။
iconv ကို အသုံးပြုသောအခါအောက်ပါအမှားအယွင်းများကိုသင်ကြုံတွေ့ရနိုင်သည်။
အသိအမှတ်မပြု input ကိုအက်ခရာအစုံ
အသိအမှတ်မပြုသော output ကိုဇာတ်ကောင်အစုံ
ပြောင်းလဲလို့မရတဲ့ဇာတ်ကောင်
ဤပြ problems နာများကိုကြုံတွေ့ရသောအခါ crashing programing ကိုရှောင်ရှားနိုင်ရန်အတွက်အောက်ပါအမှားကိုင်တွယ်ခြင်းနှင့်ခြွင်းချက်ဖမ်းယူခြင်းနည်းလမ်းများကိုကျွန်ုပ်တို့ကျင့်သုံးနိုင်သည်။
PHP သည် @ operat ကိုအသုံးပြုခြင်းသည်အမှား output ကိုဖိနှိပ်ရန်ခွင့်ပြုသည်။ အကယ်. သင်သည်မျက်နှာပြင်ပေါ်ရှိအမှားများကိုရှောင်ရှားလိုပါကဤနည်းလမ်းကိုအသုံးပြုနိုင်သည်။
$output = @iconv("UTF-8", "GBK", $input);
if ($output === false) {
// အမှားများကိုကိုင်တွယ်,သစ်ခုတ်ခြင်းစသည်တို့ကဲ့သို့
echo "အက်ခရာ encoding encoding မအောင်မြင်";
}
သို့သော်ဤချဉ်းကပ်နည်းကိုအကြံပြုသည်မဟုတ်, ၎င်းသည်အမှားအယွင်းများကိုထိထိရောက်ရောက်ဖိနှိပ်သော်လည်းအခြားအလားအလာရှိသောအမှားများကိုဖုံးကွယ်နိုင်သည်။ ထို့ကြောင့်အမှားကိုင်တွယ်ရန်အတွက်ဤနည်းလမ်းကိုမှီခိုအားထားရန်ကြိုးစားပါ။
PHP သည်အမှားအယွင်းများကိုအလိုအလျောက်ဖမ်းယူရန်နှင့်အစီရင်ခံလိုပါကအမှားကိုင်တွယ်သည့်နည်းလမ်းကိုသတ်မှတ်ရန် iconv_set_encoding () function ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:
iconv_set_encoding("internal_encoding", "UTF-8");
$input = "မင်္ဂလာပါ,ကမ်ာဘ!";
$output = iconv("UTF-8", "GBK", $input);
if ($output === false) {
echo "အက်ခရာ encoding encoding မအောင်မြင်";
}
ဤနည်းအားဖြင့်, ချို့ယွင်းသောအမှားများကိုဖမ်းမိမည်ဖြစ်ပြီးသင်အမှားအယွင်းအပေါ် အခြေခံ. သူတို့ကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
PHP 7 နှင့်အထက်တွင်ကျွန်ုပ်တို့သည် try-catch statement ကိုသုံးနိုင်သည်။ Iconv ကိုယ်တိုင်ကချွင်းချက်မချမိသော်လည်းခြွင်းချက်အားဖြင့်အမှားအယွင်းကိုအကောင်အထည်ဖော်နိုင်သည်။
function convertCharset($input, $in_charset, $out_charset) {
$output = @iconv($in_charset, $out_charset, $input);
if ($output === false) {
throw new Exception("အက်ခရာ encoding encoding မအောင်မြင်: input character set သို့မဟုတ် output ကိုဇာတ်ကောင်အစုံမပံ့ပိုးပါ");
}
return $output;
}
try {
$input = "မင်္ဂလာပါ,ကမ်ာဘ!";
$result = convertCharset($input, "UTF-8", "GBK");
echo $result;
} catch (Exception $e) {
echo "အမှား: " . $e->getMessage();
}
ဤနည်းအားဖြင့်ပြောင်းလဲခြင်းမအောင်မြင်ပါကပရိုဂရမ်သည်ချွင်းချက်အရတိုက်ရိုက်ကျုံ့ခြင်းထက်၎င်းသည်ခြွင်းချက်များနှင့်လုပ်ငန်းစဉ်များကိုပစ်ချသည်။
ပြောင်းလဲခြင်းဖြစ်စဉ်ကာလအတွင်းအသိအမှတ်ပြုထားသောဇာတ်ကောင်တစ် ဦး နှင့်ကြုံတွေ့ရသောအခါ IconV သည် မှားယွင်းစွာ ပြန်ပို့လိမ့်မည်။ အကယ်. ၎င်းကိုဤအချိန်တွင်မလုပ်ဆောင်ပါကပရိုဂရမ်၏ကွပ်မျက်မှုကိုပြတ်တောက်သွားလိမ့်မည်။ ဤအရာကိုရှောင်ရှားရန်သင်သည်ပြောင်းလဲသည့်အခါ // လျစ်လျူရှုခြင်း သို့မဟုတ် // ဘာသာပြန် ရွေးချယ်စရာများကိုသုံးနိုင်သည်။
// လျစ်လျူရှု : ပြောင်းလဲမရနိုင်သောဇာတ်ကောင်များကိုလျစ်လျူရှုပါ
// ဘာသာပြန် : အလားတူဇာတ်ကောင်များသို့ကူးပြောင်းမရနိုင်သောစာလုံးများကိုပြောင်းလဲရန်ကြိုးစားပါ
ဥပမာအားဖြင့်:
$input = "မင်္ဂလာပါ,ကမ်ာဘ!";
$output = iconv("UTF-8", "GBK//IGNORE", $input);
echo $output;
ပြောင်းလဲခြင်းမအောင်မြင်သောအောင်မြင်မှုမရနိုင်သောဇာတ်ကောင်များကိုလျစ်လျူရှုပါလိမ့်မည်။
အမှန်တကယ်စီမံကိန်းများတွင်သတင်းအချက်အလက်များကိုမှတ်တမ်းဖိုင်ထဲသို့မှတ်တမ်းတင်ရန်အကြံပြုသည်, ထို့ကြောင့်အသေးစိတ်အမှားအချက်အလက်များကိုနောက်ဆက်တွဲဖွံ့ဖြိုးတိုးတက်မှုနှင့်ပြုပြင်ထိန်းသိမ်းမှုတွင်ကြည့်ရှုနိုင်သည်။
function logError($message) {
file_put_contents("error_log.txt", $message . PHP_EOL, FILE_APPEND);
}
try {
$input = "မင်္ဂလာပါ,ကမ်ာဘ!";
$result = convertCharset($input, "UTF-8", "GBK");
echo $result;
} catch (Exception $e) {
logError($e->getMessage());
echo "发生了အမှား,ကူးယူပါ";
}
ဤနည်းအားဖြင့်ပရိုဂရမ်တွင်အမှားတစ်ခုရှိလျှင်ပင် troubleshooting ကိုလွယ်ကူချောမွေ့စေရန် Log ရှိအထူးအမှားအချက်အလက်များကိုသင်ကြည့်ရှုနိုင်သည်။