[英]Pound sign is displayed as '」' symbol in sent email, have header meta tag as charset=utf-8
通過電子郵件發送時,我的 php 文件中的英鎊符號被轉換為奇怪的 ''' 符號。
我嘗試了許多不同的解決方案,但似乎都沒有奏效。
曾嘗試將“£”替換為 £ 等...
這是在我的標題中:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
$message .= "Price Each: £".$row_get['price']. "\n";
mail($to1, $subject1, $message, $header1); // send the e-mail to customer
提前致謝
問題是編碼問題。 您沒有看到 UTF-8 渲染。
£ 符號被編碼為 0xA3,但在MS932 編碼(“日語 ANSI”)中,0xA3 是您看到的“””符號。
要正確設置電子郵件的編碼,您需要添加
$headers = 'Content-Type: text/html; charset=utf-8' . "\r\n";
到你的標題。
您還應該仔細檢查您的文件是否以 UTF-8 正確編碼。 如果你用 MS932 編碼寫井號,那將被編碼為 65410 65379。巧合的是,」 是相同的“””符號(ツ」 將顯示 ツ”)。
如果您想了解更多信息,可以在 Jon Skeet 的這個 SO 回答中更徹底地解釋這一點(Java,但根本原因是相同的)。
像這樣做
$header1 = 'MIME-Version: 1.0' . "\r\n";
$header1 .= 'Content-type: text/html; charset=utf-8' . "\r\n";
mail($to1, $subject1, $message, $header1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.