我有一个URI对象。
我需要将一些路径合并到这个URI中。
这是因为路径中的一些符号被视为不安全的(“ [ ”和“ ] ”),但这些符号未被URI.escape转义。
我使用两个URI.escape调用来解决这个问题。
问题是:为什么URI.escape默认情况下不执行转义?
或者有更好的方法吗?
require 'uri'
uri = URI.parse 'http://example.com'
我需要将一些路径合并到这个URI中。
path = URI.escape('/?foo[123]=5')
uri.merge!(path)
出现异常:
URI::InvalidURIError: bad URI(is not URI?): /?foo[123]=5
这是因为路径中的一些符号被视为不安全的(“ [ ”和“ ] ”),但这些符号未被URI.escape转义。
我使用两个URI.escape调用来解决这个问题。
path = URI.escape(URI.escape('/?foo[123]=5'), '[]')
uri.merge!(path)
问题是:为什么URI.escape默认情况下不执行转义?
或者有更好的方法吗?