Jussi H
Jussi H

Reputation: 83

Pound (£) and euro (€) signs encoded wrong in external JavaScript file

I'm trying to encode the £ sign in an external JS file but I keep getting '%EF%BF%BD'. Here's the code in its simplicity:

alert(encodeURIComponent("£"));

The same alert gives me '%C2%A3' on the HTML page that is calling the external JavaScript file. The HTML page has the following character set:

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

And I've defined the character set for the external JS file too:

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

How can I force the external JavaScript file use UTF-8 encoding?

Upvotes: 0

Views: 2976

Answers (3)

Jussi H
Jussi H

Reputation: 83

Fixed the problem by creating a blank JS file with UTF-8 encoding, copying the code in from the original file and replacing the old file with the new file.

Upvotes: 2

Xotic750
Xotic750

Reputation: 23472

Use UTF encoded character

alert("\u00A3");

On jsfiddle

UPDATE: I am still unsure as to what your problem is, but here is a further example.

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));

On jsfiddle

As I suggested in the comments, you should construct a jsfiddle to demonstrate the issue you are having if the above is not the solution that you are looking for.

Upvotes: 0

Andy Jones
Andy Jones

Reputation: 6275

ef bf bd is the replacement character - what a browser uses if it does not have the given character in its font.

If it renders correctly here, it looks like this: �

My guess would be that whatever font you're using does not support the British pound symbol £

Could you add a link to the page you're using or a demo?

Upvotes: 0

Related Questions