Issue #17309 has been updated by shyouhei (Shyouhei Urabe).


"But my browser can take UTF-8 URLs!", you might wonder.  The reality is th=
ey no longer honour what RFCs say.  Modern browsers follow other standard h=
ttps://url.spec.whatwg.org/ which has a very clear language that the URL th=
ey define must accept UTF-8.  As far as browsers go with WHATWG URL, there =
is no need for escapnig to creep in.

----------------------------------------
Misc #17309: URI.escape being deprecated, yet there is no replacement
https://bugs.ruby-lang.org/issues/17309#change-88399

* Author: chucke (Tiago Cardoso)
* Status: Open
* Priority: Normal
----------------------------------------
I'm on ruby 2.7.2 . The moment I do

```ruby
uri =3D "http://b=FCcher.ch"
URI.escape uri
(irb):5: warning: URI.escape
"http://b%C3%BCcher.ch"
```

I get that warning. Rubocop also tells me:

"""
URI.escape method is obsolete and should not be used. Instead, use CGI.esca=
pe, URI.encode_www_form or URI.encode_www_form_component depending on your =
specific use case.
"""

However, none of the suggestions does the same as `URI.escape`.

```ruby
CGI.escape uri
=3D> "http%3A%2F%2Fb%C3%BCcher.ch"
URI.encode_www_form_component uri
=3D> "http%3A%2F%2Fb%C3%BCcher.ch"
 URI.encode_www_form uri
Traceback (most recent call last):
NoMethodError (undefined method `map' for "http://b=FCcher.ch":String)
Did you mean?  tap
```

So my question is: why is this being deprecated? And if there's still reaso=
n, what to exactly replace it for, so I can keep the exact same behaviour?



-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>