gpt4 book ai didi

Java URI 不对路径中的分号进行编码。这里的最佳实践?

转载 作者:行者123 更新时间:2023-11-30 09:23:25 30 4
gpt4 key购买 nike

我正在开发一个通过 HTTP 导出本地文件的项目。这涉及获取文件 URI、使用导出路径将其相对化、将其附加到导出 URI,然后在接收端将其作为 URL 进行处理。

通常这工作正常,但当文件名包含分号时我遇到了麻烦。我将范围缩小到这里:

new File(path).toURI()

上述方法正确编码空格等,但不是分号(应该编码成 %3B)。

最终上述方法返回了 URI 构造函数(协议(protocol)、主机、路径、片段)的结果,它返回了错误的 URI。

我可以用 %3B 手动替换所有分号,但这并不是最佳解决方案。真的没有内置 API 来正确编码路径吗?

非常感谢您的帮助。

最佳答案

分号是 URI 中完全有效的字符。当然如果接收端使用分号作为特殊分隔符,发送端需要转义。但这超出了标准做法,因此您必须自己避开它。

但是在java世界里,servlet是标准的,它使用分号作为特殊的分隔符。我不知道有什么实用程序可以帮助你,所以你仍然需要手动转义分号。

关于Java URI 不对路径中的分号进行编码。这里的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16045246/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com