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/