用Javascript生成的时髦角色?

时间:2013-11-25 14:56:01

标签: javascript html character

出于某种原因,这个字符在发送时会在我的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>

3 个答案:

答案 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。