Unescaping html

Hi,
Is there a method or any library which allows me to unescape encoded
html. For example If I have hi%5Bthere%5D
I should get hi[there]

vivek

Vivek wrote:

Hi,
Is there a method or any library which allows me to unescape encoded
html. For example If I have hi%5Bthere%5D
I should get hi[there]

vivek

I believe you're looking for the CGI::unescape method. If for some reason you don't have that, you can do a simple gsub like this, though it can fail in many ways and only handles hex entities.

gsub(/%([[:xdigit:]]{2})/) {|c| $1.hex.chr }

···

--
Michael Morin
Guide to Ruby

Become an About.com Guide: beaguide.about.com
About.com is part of the New York Times Company

Vivek wrote:

Hi,
Is there a method or any library which allows me to unescape encoded
html. For example If I have hi%5Bthere%5D
I should get hi[there]

vivek

encoded _HTML_ ? what you will need is hpricot (which is amazing :slight_smile:

require 'rubygems'
require 'hpricot'

Hpricot("hi>there<", :xhtml_strict => true).to_plain_text # =>
"hi>there<"

But! from your example seems like you don't want to unescape html but
the url:

require 'cgi'

CGI.unescape "hi%5Bthere%5D"
=> "hi[there]"

Greets!

···

--
Posted via http://www.ruby-forum.com/\.

I think you mean encoded URL, not encoded HTML. For URL encoding, you
can use URL.unescape, or CGI.unescape as Michael sugests.

HTML escaping is a bit more complex, but the CGI has some methods,
e.g. CGI.escapeHTML/CGI.unescapeHTML.

···

On Aug 18, 1:41 pm, Vivek <krishna.vi...@gmail.com> wrote:

Is there a method or any library which allows me to unescape encoded
html. For example If I have hi%5Bthere%5D
I should get hi[there]

Thanks for the replies , actually I want to unescape some form
parameters which contain [ and ] .
The CGI.unescape works..Is it a superset of what URL.unescape does?

···

On Aug 18, 5:41 pm, Lars Christensen <lar...@belunktum.dk> wrote:

On Aug 18, 1:41 pm, Vivek <krishna.vi...@gmail.com> wrote:

> Is there a method or any library which allows me to unescape encoded
> html. For example If I have hi%5Bthere%5D
> I should get hi[there]

I think you mean encoded URL, not encoded HTML. For URL encoding, you
can use URL.unescape, or CGI.unescape as Michael sugests.

HTML escaping is a bit more complex, but the CGI has some methods,
e.g. CGI.escapeHTML/CGI.unescapeHTML.