我已经找到了解决办法,却找不到解决办法。我有一个html 5页面,其中包含一个包含£符号(GB)的表单,页面使用charset utf-8
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
£在网页上正确显示。然后通过php页面处理该表单的内容,通过电子邮件发送表单内容。
当电子邮件到达时,£错误地成为了£。
我已经搜索了很多关于字符集的页面,但是无法理解它们中的大多数,因为它们告诉我有关问题的信息,而不是解决方案。
我找到了一个“Heath Robinson”解决方法:
$stall_size = str_replace(chr(194),"",$stall_size);
但我觉得应该有更好,更普遍的方法来获得正确的结果。
非常感谢提前
火车
稍后编辑:
Affter阅读答案我现在已经在PHP代码中添加了以下行:
mb_internal_encoding("UTF-8");
并将建议的电子邮件标题更改为:
// create email headers
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\r\n";
$headers .= 'From: ' . $email_from . "\r\n";
$headers .= 'Reply-To: ' . $email_from . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();
但现在脚本运行时没有显示错误,但电子邮件没有到达目的地: - (