# URI::Parser

**URL:** <https://www.ruby-forum.com/t/uri-parser/145246>\
**Category:** Development\
**Created:** [August 7, 2008, 5:01am UTC](https://www.ruby-forum.com/t/uri-parser/145246 "2008-08-07T05:01:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![akira\_yamada\_S\_SSB](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/46a35a/32.png) [@akira\_yamada\_S\_SSB](https://www.ruby-forum.com/u/akira_yamada_S_SSB)\
**Post date:** [August 7, 2008, 5:01am UTC](https://www.ruby-forum.com/t/uri-parser/145246/1 "2008-08-07T05:01:33Z")

</div>

URIe$B%b%8%e!\<%k$K\<j$r2C$($Fe(B  
e$B$A$g$C$H4V0c$C$F$$$k$N$@$1$I\<B:]$K;H$o$l$F$7$^$C$F$$$ke(BURI  
e$B$r\<u$1F~$l$i$l$k$h$&$K$7$F$\_$^$7$?!#e(B

e$B2a5n$K2?EY$+e(B\<\>e$B$H$+e(B\_e$B$H$+$,F~$C$F$$$k$He(B  
e$BNc30$K$J$k$H$$$&Js9p$r\<u$1$F$$$F!"e(B  
e$B$=$l$KBP1~$7$h$&$H$7$?$b$N$G$9!#e(B

URIe$B%b%8%e!\<%k$G$O=\>Mh$+$ie(BRegexpe$B$r;H$C$F$$$^$9$,e(B  
e$B$=$Ne(BRegexpe$B$N0lIt$r;XDj$7$?%Q%?!\<%s$G@8@.$G$-$k$h$&$K$7$?e(B  
e$B$H$$$&46$8$NJQ99$G$9!#e(B

e$B$3$s$J46$8$G;H$$$^$9e(B:

> > p = URI::Parser.new(:ESCAPED=\>“(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})”)  
> > =\> #URI::Parser:0xb7872640  
> > u = p.parse(“[http://foo.bar.baz/%uABCD](http://foo.bar.baz/%25uABCD)”)  
> > =\> #\<URI::HTTP:0xb78cf4f8 URL:[http://foo.bar.baz/%uABCD](http://foo.bar.baz/%25uABCD)\>  
> > URI.parse(u.to\_s)  
> > URI::InvalidURIError: bad URI(is not URI?): [http://foo.bar.baz/%uABCD](http://foo.bar.baz/%25uABCD)  
> > from /…/lib/uri/common.rb:126:in `split' from /.../lib/uri/common.rb:144:in `parse’  
> > from /…/lib/uri/common.rb:592:in `parse' from (irb):3 from /usr/bin/irb1.9:12:in `’  
> > s = “[http://foo.bar.baz/ABCD](http://foo.bar.baz/ABCD)”  
> > =\> “[http://foo.bar.baz/ABCD](http://foo.bar.baz/ABCD)”  
> > u1 = p.parse(s)  
> > =\> #\<URI::HTTP:0xb78c3220 URL:[http://foo.bar.baz/ABCD](http://foo.bar.baz/ABCD)\>  
> > u2 = URI.parse(s)  
> > =\> #\<URI::HTTP:0xb78b6d54 URL:[http://foo.bar.baz/ABCD](http://foo.bar.baz/ABCD)\>  
> > u1 == u2  
> > =\> true  
> > u1.eql?(u2)  
> > =\> false

e$B?7$7$$%3!\<%I$re(B[http://arika.org/tmp/ruby1.9-new-uri.tar.gz](http://arika.org/tmp/ruby1.9-new-uri.tar.gz)e$B$K$\*$$$F$$$^$9!#e(B  
e$B$[$H$s$I$O%3!\<%I$r0\F0$7$?$@$1$G!"=\>Mh$N%F%9%H$bDL$k$3$H$r3NG’$7$F$$$^$9!#e(B

e$B$G$-$l$Pe(Bruby1.9e$B$KF~$l$?$$$J$H;W$C$F$$$k$N$G$9$,e(B  
e$B$$$+$,$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![akira\_yamada\_S\_SSB](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/46a35a/32.png) [@akira\_yamada\_S\_SSB](https://www.ruby-forum.com/u/akira_yamada_S_SSB)\
**Post date:** [September 9, 2008, 8:07pm UTC](https://www.ruby-forum.com/t/uri-parser/145246/2 "2008-09-09T20:07:06Z")

</div>

e$B$3$s$P$s$O!"9uED$R$i$/$H?=$7$^$9!#e(B  
e$B$R$H7nA0$NOCBj$G62=L$J$N$G$9$,!"E:IU%i%$%V%i%j$rMxMQ$5$;$F$b$i$C$F$$$kN)e(B  
e$B\>l$+$i%3%a%s%H$7$?$/$FEj9F$7$^$9!#e(B

e$B8=:_$Ne(BURIe$B%i%$%V%i%j$Oe(BRFCe$B$KCi\<B$G$"$k8N$Ke(B’_'e$B$r4^$`%[%9%HL>$r4^$`e(BURIe$B$r=hM}e(B  
e$B$7$h$&$H$9$k$H%(%i!\<$K$J$j$^$9!#e(B  
open-urie$B$de(Bmechanizee$B$,$3$Ne(BURIe$B%i%$%V%i%j$rMxMQ$7$F$$$k$?$a!“e(BURIe$B$K$OLdBj$,e(B  
e$B$”$k$1$I\<B:]$KB8:\_$7$F$$$k%Z!\<%8$r$3$l$i$N%i%$%V%i%j$G=hM}$G$-$^$;$s!#e(B

e$B\<j85$G$OD64J0W$Je(Bopen-urie$B$NBeBX%a%=%C%I$d!"e(BMechanizee$B$K$D$$$F$Oe(B  
lax-uri(_)  
e$B$J$k$b$N$r$G$C$A\>e$2$FBP1~$7$F$$$k$H$3$m$G$9$,!"$d$O$jK\2H$NJ}$GBP1~$7$Fe(B  
e$B$b$i$($l$P4r$7$$$G$9!#e(B  
(_): [http://www.hinet.mydns.jp/tdiary/?date=20080906#p01](http://www.hinet.mydns.jp/tdiary/?date=20080906#p01)

e$B$=$N$h$&$J$o$1$G!"$d$^$@$5$s$Ne(BURI::Parsere$B$,:NMQ$5$l$l$P$J$!$H;W$C$F$$$ke(B  
e$B\<!Bh$G$9!#e(B

e$B0J\>e!"8!F$$K:]$7$F$N;29M$K$7$FD:$1$l$P$H;W$$$^$9!#$I$&$\>$h$m$7$/$\*4j$$$$e(B  
e$B$?$7$^$9!#e(B

akira yamada / e$B$d$^$@$"$-$ie(B e$B$5$s$O=q$-$^$7$?e(B:

---

<div class="post-metadata">

**Author:** ![akira\_yamada\_S\_SSB](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/46a35a/32.png) [@akira\_yamada\_S\_SSB](https://www.ruby-forum.com/u/akira_yamada_S_SSB)\
**Post date:** [September 10, 2008, 11:44am UTC](https://www.ruby-forum.com/t/uri-parser/145246/3 "2008-09-10T11:44:23Z")

</div>

KURODA Hiraku e$B$5$s$O=q$-$^$7$?e(B:

> e$B8=:_$Ne(BURIe$B%i%$%V%i%j$Oe(BRFCe$B$KCi\<B$G$"$k8N$Ke(B’_'e$B$r4^$`%[%9%HL>$r4^$`e(BURIe$B$r=hM}e(B  
> e$B$7$h$&$H$9$k$H%(%i!\<$K$J$j$^$9!#e(B  
> open-urie$B$de(Bmechanizee$B$,$3$Ne(BURIe$B%i%$%V%i%j$rMxMQ$7$F$$$k$?$a!“e(BURIe$B$K$OLdBj$,e(B  
> e$B$”$k$1$I\<B:]$KB8:\_$7$F$$$k%Z!\<%8$r$3$l$i$N%i%$%V%i%j$G=hM}$G$-$^$;$s!#e(B
> 
> e$B\<j85$G$OD64J0W$Je(Bopen-urie$B$NBeBX%a%=%C%I$d!"e(BMechanizee$B$K$D$$$F$Oe(B lax-uri(_)  
> e$B$J$k$b$N$r$G$C$A\>e$2$FBP1~$7$F$$$k$H$3$m$G$9$,!"$d$O$jK\2H$NJ}$GBP1~$7$Fe(B  
> e$B$b$i$($l$P4r$7$$$G$9!#e(B  
> (_): [http://www.hinet.mydns.jp/tdiary/?date=20080906#p01](http://www.hinet.mydns.jp/tdiary/?date=20080906#p01)

e$BFC$KH?BP$O$J$5$=$&$@$J$H$$$&$N$He(B1.9.1e$B$K4V$K9g$o$;$?$$$N$H$Ge(B  
e$B$A$g$&$I0l:rF|$+$i:rF|$K$+$1$Fe(Bcommite$B$7$h$&$H$7$F$$$?$N$G$9$,e(B  
e$B\>/$7CY$l$F$5$C$-e(Bcommite$B$7$^$7$?!#e(B

e$B2?$+LdBj$,$"$j$^$7$?$i$\*CN$i$;$/$@$5$$!#e(B
