PHP将表单输入从£更改为£

时间:2016-02-06 08:35:51

标签: php html character-encoding

我已经找到了解决办法,却找不到解决办法。我有一个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();

但现在脚本运行时没有显示错误,但电子邮件没有到达目的地: - (

0 个答案:

没有答案