28-03-2006, 00:23
|
|
|
חבר מתאריך: 13.12.05
הודעות: 1,963
|
|
זה רק נראה מסובך, תקרא קצת ותראה שזה דווקא די פשוט ומפורט.
רשימת הheaders אסורה שתכלול תווים מיוחדים, איך שUTF-8 כתוב באמת, הוא מכיל תווים מיוחדים, הוא לא באמת נראה כאיך שהוא מוצג לך.
אם אתה רוצה לקודד חלק מסויים בheader עצמו, שהוא טקסטואלי ואינו מייצג מאפיין מסוים (כמו From או Subject) אתה עושה זאת באופן הבא:
קוד:
"=?" charset "?" encoding "?" encoded-text "?="
עכשיו, מה זה אומר?
charset שלנו הוא UTF-8
הקידוד יכול להיות Q או B
קידוד של Q הוא קידוד בסגנון של הקסהדצימלי לתווים מיוחדים שאינם תווי כתיבה כשמקדים אותם הסימן שווה (=) (כמו רווח וכיו"ב).
אתה רושם בעברית, אז נעדיף להשתמש בB, הקידוד של B הוא בפשטות BASE64 - לכן נשתמש בו, יש פונקציה מוכנה לכך בPHP.
אחרי שהבהרנו את זה, המילה שלנו צריכה להראות כך:
קוד:
$header .= 'Subject: =?UTF-8?B?' . base64_encode($Subject) . '?=' . "\r\n"
אתה לא חייב לכלול את MIME-Version בתוך רשימת הheaders
|