module Protocol::HTTP::URL

def self.escape(string, encoding = string.encoding)

@returns [String] The escaped string.
@parameter string [String] The string to escape.

Escapes a string using percent encoding, e.g. `a b` -> `a%20b`.
def self.escape(string, encoding = string.encoding)
	string.b.gsub(/([^a-zA-Z0-9_.\-]+)/) do |m|
		"%" + m.unpack("H2" * m.bytesize).join("%").upcase
	end.force_encoding(encoding)
end