如何使用 java spring 进行encodeURI/decodeURI?

Sab*_*ina 1 java spring encode uri

我有一个用 java spring 制作的简单 api,它接收文本并将其保存在数据库中。以及一个 javascript 中的应用程序,用于格式化文本并将其发送到 api。

\n\n

我有多种语言的文本 \xe2\x80\x8b\xe2\x80\x8b(中文、日文...),并且我遇到了特殊字符的问题,所以我在 javascript 中使用encodeURI 将文本发送到 api。

\n\n

当 api 收到文本时,我需要进行编码,将原始文本保存在数据库中。\n但是当我必须将文本返回到前端应用程序时,我需要首先再次对其进行编码。

\n\n

在发送到 api 之前在前端对文本进行编码

\n\n
console.log(text);\n//\xe7\xba\xa2\xe7\x81\xaf\xe4\xba\xae\xe8\xb5\xb7\xe6\x97\xb6, \xe9\xba\xa6\xe5\x85\x8b\xe9\xa3\x8e\xe5\xa4\x84\xe4\xba\x8e\xe9\x9d\x99\xe9\x9f\xb3\xe7\x8a\xb6\xe6\x80\x81\n\ntext = decodeURIComponent(text);\nconsole.log(text);\n//%E7%B4%85%E7%87%88%E4%BA%AE%E8%B5%B7%E6%99%82%2C%20%E9%BA%A5%E5%85%8B%E9%A2%A8%E8%99%95%E6%96%BC%E9%9D%9C%E9%9F%B3%E7%8B%80%E6%85%8B\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我想知道如何使用 java spring 进行encodeURI/decodeURI文本。

\n

Ani*_*wat 5

您正在寻找java.net.URLDecoder并且java.net.URLEncoder

String decoded = URLDecoder.decode(s, StandardCharsets.UTF_8);
String encoded = URLEncoder.encode(result, StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)

上述方法适用于 java 10 及以上版本。对于以前的版本,您必须将代码包装在try-catch块中。

  • 谢谢,这项工作,我只需要使用 StandardCharsets.UTF_8.name() 即可。 (2认同)