2017-10-12 86 views
0

我在我的網站上有<meta charset="utf-8" />,我的文件是UTF-8編碼,我已將charset="utf-8"放在腳本標記上,但它仍然無效。Javascript無法編碼英鎊

下面是我的代碼

<input type="text" id="danewcontent1" name="danewcontent1" 
value="£890"> 

<script charset="utf-8"> 
function escapePercent(str) { 
    return str.replace(/%/g, '%25'); 
} 

$(function() { 
    var post_id = 1; 
    var daplaincontent = $("#danewcontent1").val(); 
    alert(daplaincontent); 
    var danewcontent = escapePercent(escape(daplaincontent)); 
    prompt("Copy the value below into http://urldecode.org and keep clicking decrypt", danewcontent); 

    // decode the URLEncode here, and keep clicking "decode" 
    // https://urldecode.org 
}); 
</script> 

它編碼£%25A3890這是%A3890解碼是�890解碼。

我有一個JS小提琴這裏說明這個問題。 https://jsfiddle.net/desbest/dyz9zta6/

+0

什麼是預期的結果? – guest271314

+0

我假設你需要編碼英鎊符號(貨幣符號)才能通過URL傳遞它?爲什麼這是一個要求?還是有我失蹤的東西?請提供您正在嘗試進行的整體背景。您可能試圖以不同於需要的方式解決問題。 – TinkerTenorSoftwareGuy

+0

@ guest271314預期的結果是,JavaScript成功編碼的英鎊符號,我可以通過去http://urldecode.org – desbest

回答

1

我認爲你需要停止嘗試重新發明輪子並使用內置的瀏覽器編碼和解碼。你只是按照你所做的方式處理逃跑並不適合你。

$(function() { 
 
    var post_id = 1; 
 
    var daplaincontent = $("#danewcontent1").val(); 
 
    alert(daplaincontent); 
 
    var encoded = encodeURIComponent(daplaincontent); 
 
    alert(encoded); 
 
    var decoded = decodeURIComponent(encoded); 
 
    alert(decoded); // this gives back the £890 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="danewcontent1" name="danewcontent1" 
 
value="£890">