Are square brackets not allowed in a URI?

  • Thread starter Just Another Victim of the Ambient Morality
  • Start date
J

Just Another Victim of the Ambient Morality

I could swear that this URL works:


http://www.teamliquid.net/tlpd/players/189_YellOw[ArnC]


...but parsing this with URI throws an exception claiming that this is
invalid.
I don't know exactly what URI's are but Mechanize is using it to parse
URLs and this appears to be a valid URL so it looks like either Mechanize's
bug is in using Ruby's URI module or the URI module in not accepting valid
URLs. Either that or there's something I'm totally not understanding (like
my browser lying to me or something). Can someone tell me what's going on?
Thank you!
 
M

Michael Fellinger

I could swear that this URL works:


http://www.teamliquid.net/tlpd/players/189_YellOw[ArnC]


...but parsing this with URI throws an exception claiming that this is
invalid.
I don't know exactly what URI's are but Mechanize is using it to parse
URLs and this appears to be a valid URL so it looks like either Mechanize's
bug is in using Ruby's URI module or the URI module in not accepting valid
URLs. Either that or there's something I'm totally not understanding (like
my browser lying to me or something). Can someone tell me what's going on?
Thank you!

Your browser is, in fact, lying to you, the URL it opens is :
http://www.teamliquid.net/tlpd/players/189_YellOw[ArnC]

Browsers always (un)escape URLs for readability, take a look for
example at the way markdown escapes email addresses:
http://daringfireball.net/projects/markdown/syntax#autolink

While it's unfortunate for us coders, not properly escaped hrefs in
links are a very common thing on the web, fortunately there are not
that many URIs that use special characters, and sometimes people
actually do escape them before slating them into HTML, but not always.

There's no simple workaround i can think of, short of patching uri.rb

^ manveru
 
A

ara.t.howard

I could swear that this URL works:


http://www.teamliquid.net/tlpd/players/189_YellOw[ArnC]


...but parsing this with URI throws an exception claiming that
this is
invalid.
I don't know exactly what URI's are but Mechanize is using it to
parse
URLs and this appears to be a valid URL so it looks like either
Mechanize's
bug is in using Ruby's URI module or the URI module in not accepting
valid
URLs. Either that or there's something I'm totally not
understanding (like
my browser lying to me or something). Can someone tell me what's
going on?
Thank you!

http://www.faqs.org/rfcs/rfc2396.html



"

Other characters are excluded because gateways and other transport
agents are known to sometimes modify such characters, or they are
used as delimiters.

unwise = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"

Data corresponding to excluded characters must be escaped in order
to
be properly represented within a URI.


"

a @ http://codeforpeople.com/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top