0

我有一个使用 encodeURIComponent 在 JS 中编码的文本。原文是

weoowuyteeeee !_.

Test could you please resubmit again? 

在发送之前,我在我的 JS 代码中执行以下操作。

var text = encodeURIComponent($("#txt11").val());

我不应该这样做吗?

一旦我使用 encodeURIComponent 对其进行编码,它就变成了


weoowuyteeeee%2520!_.%252C%250A%250ATest%252C%2520%2520could%2520you%2520please%2520resubmit%2520again%253F


我正在尝试使用在 Java 端解密相同的内容

String decodedString1 = URLDecoder.decode(myObject.getText(), "UTF-8");

但我将此视为输出,而不是原始文本。我究竟做错了什么?


weoowuyteeeee%20!_.%2C%0A%0ATest%2C%20%20可以%20you%20please%20resubmit%20again%3F


4

1 回答 1

3

您正在对数据进行两次编码。

最初,您已经对数据进行了编码,然后再次对其进行了编码。

例如:让你的文字成为

你好世界

编码后变成

你好%20世界

如果你再次编码它变成

你好%2520世界

原因

%20 中的 % 被编码为 %25。所以空间变成了%2520。

普通的 AJAX 可以在发送到服务器端之前自动对您的数据进行编码。检查第二次编码发生的位置。

于 2017-04-10T19:56:56.210 回答