php - 磅号在发送的电子邮件中显示为“」”符号,标题元标记为 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(Java,但根本原因是相同的)在这个 SO 答案中对此进行了更彻底的解释。
推荐阅读
- sql - 日期条件不返回预期值的 SQL 窗口函数
- ruby-on-rails - 在事务期间保持数据可用(postgresql)
- javascript - Cropper js长宽比按钮问题
- vb.net - ServicePointManager.SecurityProtocol 如何影响 Web 请求?
- mongodb - 如何对特定键的 mongo 结果进行分组?
- ruby - 捆绑配置中的 URI::InvalidURIError
- c# - 当响应为 HttpStatusCode.NoContent 时,有什么方法可以获取 HttpResponseMessage.Content 正文?
- javascript - javascript中的复选框ID列表
- python - 试图在 django 中读取文本文件
- android - MLKit 识别不良