JavascriptencodeURIComponent和Java解码问题

标签 javascript java encoding uriencoding

我正在使用encodeURIComponent 在 JS 中编码某个文本。原文是

weoowuyteeeee !_.

Test could you please resubmit again? 

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

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

我不应该这样做吗?

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

<小时/>

weoowuyteeeee%2520!_.%252C%250A%250ATest%252C%2520%2520可以%2520you%2520请%2520重新提交%2520再次%253F

<小时/>

我正在尝试使用

在 Java 端解密相同的内容
String decodedString1 = URLDecoder.decode(myObject.getText(), "UTF-8");

但我认为这是输出,而不是原始文本。我做错了什么?

<小时/>

weoowuyteeeee%20!_.%2C%0A%0ATest%2C%20%20可以%20you%20请%20重新提交%20再次%3F

<小时/>

最佳答案

您对数据进行了两次编码。

最初,您已经对数据进行了编码,稍后又会再次进行编码。

例如:让您的文字为

Hello World

编码后变成

Hello%20World

如果再次编码,它会变成

Hello%2520World

原因

% from %20 is encoded to %25. So the space becomes %2520.

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

关于JavascriptencodeURIComponent和Java解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43331827/

相关文章:

javascript - Twitter下拉列表不显示

java - 应该使用什么代码页/字符集来将来自 MVS 系统的数据解释为 Java 环境?

c# - 在字符串中定义 4 字节 UTF-16 字符

java: wait(), notify() 和同步块(synchronized block)

c# - 将字节转换为 ISO 8859-1 编码时,空字节会发生什么情况?

javascript - Parse.Cloud.run() 未履行 promise

javascript - JSP-html按钮启用-禁用条件

javascript - JS - 将字符串列表映射到等长矩阵的有效方法

java - Java 中是否有任何 Kafka 监控 API?

java - 是否可以直接从服务层抛出ResponseStatusException,而无需在 Controller 层面抛出自定义异常和处理?