【问题标题】:Issue with javascript escape, encodeURI and encodeURIComponentjavascript 转义、encodeURI 和 encodeURIComponent 的问题
【发布时间】:2011-06-30 15:00:30
【问题描述】:

我的应用程序使用 ajax POST 请求将数据从 javascript 发送到我的 servlet,并且该数据也包含特殊字符。我在对数据执行 javascript escape() 后发送此数据,因为我的内容也可以包含 URL。

问题是我在我的 servlet 端没有得到正确的数据,我怀疑是 escape 造成了这个问题。

我尝试在我的 javascript 代码中进行以下操作:

alert(escape("»"));
alert(unescape(escape("»")));

alert(encodeURI("»"));
alert(decodeURI(encodeURI("»")));

alert(encodeURIComponent("»"));
alert(decodeURIComponent(encodeURIComponent("»")));

当我对转义字符串进行转义时,我没有得到正确的警报,从代码中可以看出,我也尝试过使用 encodeURI、encodeURIComponent 及其各自的解码方法。

我应该如何从 javascript 发送数据,以便正确接收所有特殊字符和内容的其他部分(如 URL)。

【问题讨论】:

  • 所有这些示例都非常适合我。你在警报中得到了什么?
  • @Pointy 很遗憾,我没有在单独的 .html 文件中对其进行测试,它在那里工作正常,但是当我从我的应用程序中尝试它时,它显示 »。关于可能是什么问题的任何想法?我的 jsp 使用 :<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 但是单独的 .html 文件在这种编码下工作正常。
  • 我又不好了,这个字符集编码是问题所在,我不知道为什么我试图将 jsp 指令放在 html 上 :(.

标签: javascript ajax escaping


【解决方案1】:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

是问题所在,已将其更改为 UTF-8,现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多