外部JavaScript文件中的磅(£)和欧元(€)符号编码错误

时间:2013-06-12 15:38:00

标签: javascript urlencode encode url-encoding

我正在尝试在外部JS文件中对£符号进行编码,但我不断获得'%EF%BF%BD'。这是简单的代码:

alert(encodeURIComponent("£"));

同一个警报在调用外部JavaScript文件的HTML页面上给出'%C2%A3'。 HTML页面具有以下字符集:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我也为外部JS文件定义了字符集:

<script type="text/javascript" src="/js/share.js" charset="utf-8"></script>

如何强制外部JavaScript文件使用UTF-8编码?

3 个答案:

答案 0 :(得分:2)

通过使用UTF-8编码创建空白JS文件,从原始文件复制代码并用新文件替换旧文件来解决此问题。

答案 1 :(得分:0)

ef bf bdreplacement character - 浏览器在其字体中没有给定字符时使用的内容。

如果它在这里正确呈现,它看起来像这样:

我的猜测是,你使用的任何字体都不支持英镑符号£

您可以添加指向您正在使用的网页或演示的链接吗?

答案 2 :(得分:0)

使用UTF encoded字符

alert("\u00A3");

jsfiddle

更新:我仍然不确定你的问题是什么,但这是另一个例子。

HTML

<div id="out"></div>

的Javascript

var link = "http://somewhere.com",
    tweet = "£££££€€€€€€€",
    x = '<a href="twitter.com/intent/tweet?url=' + encodeURIComponent(link) + '&text=' + encodeURIComponent(tweet) + '">anchor</a>';

document.getElementById("out").innerHTML = x;

alert(decodeURIComponent(x));

jsfiddle

正如我在评论中所建议的那样,如果以上不是您正在寻找的解决方案,您应该构建一个jsfiddle来演示您遇到的问题。