2013-06-12 43 views
0

我試圖在外部JS文件中對英鎊符號進行編碼,但我一直收到'%EF%BF%BD'。以下是其簡單代碼:英鎊(£)和歐元(€)標誌在外部JavaScript文件中編碼錯誤

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編碼?

+0

你的問題是非常不清楚的,它會從一個證明確切問題的jsfiddle中受益。 – Xotic750

+0

我無法在jsfiddle中演示它,因爲問題在於我的JS文件中的字符編碼 - 當我在jsfiddle中測試它(或者在我的HTML文件中有JS代碼)時它可以工作。 –

回答

2

通過創建帶有UTF-8編碼的空白JS文件,從原始文件複製代碼並用新文件替換舊文件來解決此問題。

+0

不是我們可以爲你解答的問題,很高興你解決了它。不要忘記接受你的答案。 – Xotic750

0

ef bf bdreplacement character - 如果瀏覽器在其字體中沒有給定字符時使用什麼。

如果正確呈現在這裏,它看起來像這樣:

我的猜測是,你正在使用不支持£

你可以添加一個鏈接到英鎊符號,無論字體你正在使用的頁面還是演示?

+0

可悲的是我無法發送鏈接,因爲它是我正在開發的一個商業項目,但是我可以確認,如果我在輸入框中輸入字符,我會得到 符號。我不確定字體是如何與此相關的,因爲我沒有將它寫在頁面上,僅在警報中是錯誤的。 –

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證明您遇到的問題,如果上面沒有您正在尋找的解決方案。

+0

上面的示例被簡化爲僅顯示£符號,但實際上我試圖對可能包含一些特殊字符的整個句子進行編碼,例如:encodeURIComponent(「x的成本是£20,y的成本是10英鎊 - 與歐元相同的是30歐元和15歐元。「) –

+0

你想在哪裏以及如何展示它?在HTML網頁或警報?目前還不清楚你想要達到什麼目的,或者來源是什麼。 – Xotic750

+0

我正在使用JavaScript生成一條推文鏈接:var link =''; –

相關問題