java - JS 的encodeURI 相当于Java

标签 java html encoding

我有一个文件路径:

file://///10.10.10.10/Yev Pri - Ru─▒n G├╢z├╝yle Ortado─Яu.pdf

这显示为:

file://///10.10.10.10/Ye%20Pri%20-%20Ru%E2%94%80%E2%96%92n%20G%E2%94%9C%E2%95%A2z%E2%94%9C%E2%95%9Dyle%20Ortado%E2%94%80%D0%AFu.pdf

<a/>内当我检查 HTML 标签时。我想在 Java 中生成相同的字符串。当我用

对其进行编码时

URLEncoder.encode(path, StandardCharsets.UTF_8.displayName())

file%3A%2F%2F%2F%2F%2F10.10.10.10%2FYev+Pri+-+Ru%E2%94%80%E2%96%92n+G%E2%94%9C%E2%95%A2z%E2%94%9C%E2%95%9Dyle+Ortado%E2%94%80%D0%AFu.pdf

看来浏览器适用encodeURI() 。如何使用浏览器获取相同的字符串?

最佳答案

URLEncoder 用于对表单数据进行编码。要创建转义 URL 或 URI,请使用 java.net.URI class :

URI uri = new URI("file", "///10.10.10.10/Yev Pri - Ru─▒n G├╢z├╝yle Ortado─Яu.pdf", null);
String escapedURI = uri.toASCIIString();

注意:您不能使用new URI("file://///10.10.10.10/Yev Pri - Ru─▒n G├╢z├╝yle Ortado─Яu.pdf") 因为该构造函数不会对可能不合法直接出现在 URI 中的字符执行百分比转义。类文档明确指定单参数构造函数期望参数已经具有正确的转义。

关于java - JS 的encodeURI 相当于Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44591776/

相关文章:

java - REST API 可以有多个模型吗?

java - WEB-INF 在 Java EE Web 应用程序中的用途是什么?

java - 离线时 OSX Lion 上的 InetAddress.getLocalHost() 分辨率

java - Java 8中使用一个Stream执行多个get操作并保存结果

javascript - 如何在使用 javascript 加载文档时执行 css3 转换?

html - 在 iframe 的网站中嵌入的 Flash 内容上显示 div

html - 在 CSS 中所有四个边的负边距会做什么?

java - â® 字符在返回时转换为问号

Php codeigniter将土耳其语字符保存到mysql

ruby-on-rails - Ruby 1.8.7(或 Rails 2.x)中的 String.force_encoding()