出于某种原因,这个字符在发送时会在我的HTML电子邮件中生成:â€。我尝试使用preg_replace('/–/','',$ var)在PHP中替换它,但这不起作用。出于某种原因,当我收到包含HTML的电子邮件时,会出现此角色。我猜测它是以我的代码中的JavaScript生成的:
$('.comments0').click(function(){
$('.comments').val($('.comments').val() + 'Our warranties are:\nNew – 1 year\nRemanufactured - 6 months\nRepair - 6 months');
});
如果它不是用JavaScript生成的,我不确定这个角色是如何在我的HTML中间创建的。它会在New之后生成,就像这样:New - 1 Year。我不知道为什么这个角色会像这样随机出现。
顺便说一句,这里是与该JavaScript直接相关的HTML:
<form action="?AddToQuote" method="POST" id="myForm" name="myForm">
<input type="checkbox" name="comments[0]" class="comments0" id="comments0" /><label>6 Months Warranty</label>
<textarea cols="75" rows="6" name="comments" class="comments" id="comments"><?php if(isset($_SESSION['comments'])) { echo $_SESSION['comments']; } ?></textarea>
</form>
答案 0 :(得分:1)
这是一个短划线:
新 - 1年
如果您没有使用与写入时相同的编码来提供脚本,则会出现错误。因此,请确保将其保存为UTF-8并将其作为UTF-8提供。如果JavaScript是HTML的一部分,请将其添加到<head>
(HTML5)的顶部:
<meta charset="utf-8">
你可以测试一下:
$ echo '–' > test.html
$ firefox test.html
(– shows up in a browser)
答案 1 :(得分:1)
显然,邮件中的字符是从其他地方复制/粘贴的。如果你删除它们并直接在JS源代码中手动重新输入,那应该可以解决问题。
答案 2 :(得分:0)
确保您的文本编辑器/ IDE设置为将文件保存为UTF-8且无BOM。
此外,请确保您在页面<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
中使用<head>
并将电子邮件设置为UTF-8。