我的 URL 对象的路径包含不明智的字符(RFC 2396),在我的情况下它是“|” (管道)字符。现在我需要将其安全地转换为 URI,但URL.toURI()
会引发异常。
我已经阅读了URL 文档,但这部分让我感到困惑:
URL 类本身并不根据 RFC2396 中定义的转义机制对任何 URL 组件进行编码或解码。调用者有责任对在调用 URL 之前需要转义的任何字段进行编码,并对从 URL 返回的任何转义字段进行解码。此外,由于 URL 不知道 URL 转义,因此它无法识别同一 URL 的编码或解码形式之间的等价性。
那么我该怎么做呢?在转换过程中编码此字符的模式是什么?我需要创建我的 URL 对象的编码副本吗?