From: "duerst (Martin Dürst)" Date: 2012-07-06T16:32:10+09:00 Subject: [ruby-core:46223] [ruby-trunk - Bug #6696] [PATCH] ERB::Util.url_encode should not escape unreserved characters Issue #6696 has been updated by duerst (Martin D��rst). The tilde was added to the unreserved characters in URIs in RFC 2396. It is specifically mentioned in http://tools.ietf.org/html/rfc2396#appendix-G.2: The tilde "~" character was added to those in the "unreserved" set, since it is extensively used on the Internet in spite of the difficulty to transcribe it with some keyboards. RFC 2396 was published in August 1998, about 14 years ago. I think it's safe to make this change now :-). ---------------------------------------- Bug #6696: [PATCH] ERB::Util.url_encode should not escape unreserved characters https://bugs.ruby-lang.org/issues/6696#change-27851 Author: madeofcode (Mark Dodwell) Status: Assigned Priority: Normal Assignee: seki (Masatoshi Seki) Category: Target version: 1.9.3 ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.2] ERB::Util.url_encode is escaping tilde (~) where it should not according to the RFC. This fixes that behaviour so that it now correctly avoids escaping all unreserved characters as per RFC 3986, Section 2.3: http://tools.ietf.org/html/rfc3986#section-2.3 Fwiw., this is also how the Perl implementation works: http://search.cpan.org/dist/URI/URI/Escape.pm#DESCRIPTION I opened this issue originally on Github, but I think it warrants further discussion, so re-opening here. -- http://bugs.ruby-lang.org/