簡體   English   中英

已發送郵件中的井號顯示為“”,標題元標記為 charset=utf-8

[英]Pound sign is displayed as '」' symbol in sent email, have header meta tag as charset=utf-8

通過電子郵件發送時,我的 php 文件中的英鎊符號被轉換為奇怪的 ''' 符號。

我嘗試了許多不同的解決方案,但似乎都沒有奏效。

曾嘗試將“£”替換為 &pound 等...

這是在我的標題中:

<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。巧合的是,&#65379; 是相同的“””符號(&#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM