Incorded-Printable သည် Ascii ဇာတ်ကောင်များကို format ဖြင့် encoding mail tunction အတွက် encoding method တစ်ခုဖြစ်ပြီး XX (xx သည်ဇာတ်ကောင်၏ hexadecimal hexadecimal value is is) ကို SMTP ကဲ့သို့သော SMTP ကဲ့သို့သောအကြောင်းအရာများမှကူးစက်သောအခါအကြောင်းအရာသည်ယိုယွင်းပျက်စီးမနေကြောင်း။ PHP သည် encoding ကိုပြန်လည်ထူထောင်ရန်အတွက် QRECTIVE_Decode ကို ပေးသည်။
Developer အတော်များများက Quoted_Dable_Decode ဖြင့် decodding_decode နှင့်အတူမှတ်သားထားသောသင်္ကေတများသို့မဟုတ်အမှိုက်သရိုက်များသို့မဟုတ်အမှိုက်ပုံကုဒ်များပေါ်လာလိမ့်မည်။ အဓိကအကြောင်းပြချက်များမှာ
မတိုက်ဆိုင် encoding ဇာတ်ကောင်
ကိုးကားထားသောပုံနှိပ်နိုင်သောသည် byte အကြောင်းအရာကိုဖြုတ်ချရန်သာတာဝန်ရှိသည်။ Decoded string သည် byte string သည် byte stream ဖြစ်နေဆဲဖြစ်ပြီး UTF-8, ISO-8859-1 စသည်ဖြင့်မှန်ကန်စွာပြောင်းလဲရန်လိုအပ်သည်။
Escape ဇာတ်ကောင်များကိုအပြည့်အဝအကဲဖြတ်ခြင်းမရှိပါ အီးမေးလ်အကြောင်းအရာအချို့သည် encoding method များစွာကိုသုံးနိုင်သည်သို့မဟုတ်ကိုးကားထားသောပုံနှိပ်နိုင်သောသတ်မှတ်ချက်ကိုအတိအကျလိုက်နာခြင်းမရှိသော encodings များရှိနိုင်သည်။
Multi-byte ဇာတ်ကောင်များသည်အုပ်စုခွဲနှင့် encoded နေကြသည် Multi-byte ဇာတ်ကောင်များ (တရုတ်နှင့်ဂျပန်ကဲ့သို့သော) အတွက်ကိုးကားထားသောပုံနှိပ်နိုင်သောအရာသည် Controling Printable သည် bytes များကို encoding သည့်အခါအပိုင်းပိုင်းခွဲနိုင်ပြီး၎င်းသည် decoding ပြီးနောက်မှန်ကန်စွာပေါင်းစပ်ရန်လိုအပ်သည်။
များသောအားဖြင့်မေးလ်အကြောင်းအရာသည် UTF-8, GBK စသဖြင့်ခေါင်းစဉ်တပ်ထားသောခေါင်းစဉ် (charset) ကိုကြေငြာ သည် ။
<?php
// ယူဆချက် $encoded ဟုတ်ကဲ့ quoted-printable encoded string ကို
$decoded = quoted_printable_decode($encoded);
// ကူးပြောင်း UTF-8 ကုဒ်
$corrected = mb_convert_encoding($decoded, 'UTF-8', 'ISO-8859-1');
echo $corrected;
?>
အကယ်. အီးမေးလ်သည် UTF-8 encoding ဖြစ်ပါကဒုတိယ parameter သည်သက်ဆိုင်ရာ encoding သို့ပြောင်းလဲနိုင်သည်။
ကိုးကားထားသောပုံနှိပ်ထားသော encoding တွင် soft line break ( = \ r \ ) သည်ခေါက်ထားသောလိုင်းကိုကိုယ်စားပြုသည်။ သင်ပုံမှန်သန့်ရှင်းရေးကိုသုံးနိုင်သည်။
<?php
$decoded = quoted_printable_decode($encoded);
// ပျော့ပျောင်းသောလိုင်းချိုးဖယ်ရှားပါ
$cleaned = preg_replace('/=\r?\n/', '', $decoded);
echo $cleaned;
?>
transcoding မတိုင်မီ decodded string ကိုပြည့်စုံစုံ multi-byte sequence ကိုသေချာအောင်သေချာအောင်လုပ်ပါ။ MB_Check_encoding ကို အသုံးပြု. မပြည့်စုံသောကြောင့်အမှိုက်များ code code ကိုရှောင်ရှားရန် encoding validity ကိုစစ်ဆေးရန်သင်အသုံးပြုနိုင်သည်။
<?php
$decoded = quoted_printable_decode($encoded);
if (!mb_check_encoding($decoded, 'UTF-8')) {
// 可以尝试不同ကုဒ်转换
$decoded = mb_convert_encoding($decoded, 'UTF-8', 'ISO-8859-1');
}
echo $decoded;
?>
အီးမေးလ်အကြောင်းအရာကိုပြုပြင်သည့်အခါ အကြောင်းအရာ နှင့် charset အချက်အလက်များကိုအီးမေးလ်၏ခေါင်းပေါ်တွင်ဖတ်ရန်, ၎င်းကိုအလိုအလျောက် encode လုပ်ပြီး encode လုပ်ပြီး encode လုပ်ပြီး encode လုပ်ပြီး encode လုပ်ပြီး encode လုပ်ပြီး encode လုပ်ထားပါ။
<?php
// Pseudocode ဥပမာ
$content_type = 'text/plain; charset=ISO-8859-1'; // အီးမေးလ်ခေါင်းစီးမှခွဲခြမ်းစိတ်ဖြာ
preg_match('/charset=([^;]+)/i', $content_type, $matches);
$charset = $matches[1] ?? 'UTF-8';
$decoded = quoted_printable_decode($encoded);
$corrected = mb_convert_encoding($decoded, 'UTF-8', $charset);
echo $corrected;
?>
တစ်ခါတစ်ရံတွင်အချက်အလက်များအကျင့်ပျက်ခြစားမှုများဖြစ်ပေါ်နိုင်သည့်တူညီသောအချက်အလက်များအတွက် ထပ်ခါတလဲလဲ ခေါ်ဆိုမှုများကိုထပ်ခါတလဲလဲခေါ်ဆိုမှုများကိုရှောင်ရှားရန်တစ်ခါတစ်ရံ string သည်အကြိမ်ပေါင်းများစွာ encoded ဖြစ်နိုင်သည်။
encoded content ကို processed to encoded encoded processing to quoted_printable_decode ကို သုံးတဲ့အခါသော့ချက်ကတော့ဒါကကိုးကားထားတဲ့ Printable Restore ကိုသာကိုးကားပြီး encoding restore လုပ်ခြင်းကိုသာနားလည်ရန်ဖြစ်သည်။ အောက်ပါသော့ချက်အချက်များကိုသာကျွမ်းကျင်ပါ။
အီးမေးလ်များ၏ encoding encoding encoding ကိုဖတ်ရှုခြင်းနှင့်လေးစားပါ
encoding ပြောင်းလဲခြင်းအတွက် MB_ConVert_encoding ကို သုံးပါ
ပျော့ပျောင်းသောလိုင်းအားဖြိုဖျက်ခြင်းနှင့်မလိုအပ်သောဇာတ်ကောင်များကိုရှင်းလင်းပါ
Multibyte encoding ၏သမာဓိကိုစစ်ဆေးပါ
၎င်းသည်အထူးအက္ခရာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီး decoding ပြီးနောက် condbled code ပြ problems နာများကိုပိုမိုကောင်းမွန်စေပြီးအီးမေးလ်အကြောင်းအရာပြုပြင်ခြင်းအရည်အသွေးကိုတိုးတက်စေသည်။
<?php
// ကောင်းသောအသေးစိတ်ဥပမာ
$encoded = "Hello=20World=21=0D=0A=C3=A9"; // quoted-printable နမူနာ
$decoded = quoted_printable_decode($encoded);
// ယူဆချက်邮件声明ကုဒ်为 ISO-8859-1
$corrected = mb_convert_encoding($decoded, 'UTF-8', 'ISO-8859-1');
echo $corrected; // ထုတ်လုပ်ခြင်း:Hello World! é
?>