Javascript无法对£符号进行编码

时间:2017-10-12 19:47:18

标签: javascript jquery utf-8

我的网站上有<meta charset="utf-8" />,我的文件采用UTF-8编码,而且我已将charset="utf-8"放在脚本代码上 - 但它仍无效。

以下是我的代码

<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 Fiddle在这里说明了这个问题。 https://jsfiddle.net/desbest/dyz9zta6/

1 个答案:

答案 0 :(得分:1)

我认为你需要停止尝试重新发明轮子并使用内置的浏览器编码和解码。你按照自己的方式处理逃生并不适合你。

&#13;
&#13;
$(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
});
&#13;
<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">
&#13;
&#13;
&#13;