From: app.fk91@... Date: 2017-03-29T09:13:01+00:00 Subject: [ruby-core:80463] [Ruby trunk Bug#12235] URI.encode issue with square brackets Issue #12235 has been updated by litmon (Fukuo Kadota). similar issue: https://bugs.ruby-lang.org/issues/9806 ---------------------------------------- Bug #12235: URI.encode issue with square brackets https://bugs.ruby-lang.org/issues/12235#change-63956 * Author: lucaspiller (Luca Spiller) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- URI::Encode doesn't correctly handle square brackets in the path of a URL: > URI.encode('http://example.com/resource[1].doc') => "http://example.com/resource[1].doc" It should return "http://example.com/resource%5B1%5D.doc". As per [RFC3986](http://tools.ietf.org/html/rfc3986#appendix-D.1), square brackets are only valid in the host part, not the path part. URI.parse correctly raises an error if a URL has square brackets in the path, which means URI::encode can return something that is rejected by URI.parse: > URi.parse('http://example.com/resource[1].doc') URI::InvalidURIError: bad URI(is not URI?): http://example.com/resource[1].doc > URI.parse(URI::encode('http://example.com/resource[1].doc')) URI::InvalidURIError: bad URI(is not URI?): http://example.com/resource[1].doc Tested on Ruby 2.1.5 and 2.3.0 on OS X and Linux. -- https://bugs.ruby-lang.org/ Unsubscribe: