In article [email protected],
Kouhei S. [email protected] writes:
e$B<}B+$7$J$$5$$b$9$k$N$G$H$j$"$($:$^$H$a$F$*$-$^$9!#e(B
e$B!JC/$+=u$1$F!Ke(B
e$B2pF~$9$k?M$O$$$J$$$_$?$$$G$9$M$’!#e(B
e$B?\F#e(B: opene$B$9$k$H$3$m$^$G4^$`$H%U%!%$%k0J30$K;H$($J$$$+$ie(BIOe$B$Ke(B
e$B%(%s%3!<%G%#%s%0$r8!=P!&@_Dj$9$ke(B
APIe$B!Je(Bio.detect_encoding!e$B!K$rDI2C$7$F!"e(Bopene$B$H$OFHN)e(B
e$B$K;H$($ke(BAPIe$B$,$$$$!#$G$b!";H$&$H$-$Oe(Breade$B$9$kA0$H$+e(B
e$B$K8F$s$G$M!"$H$$$&Cm0U$,I,MW!#e(B
e$B$=$&$$$&e(B API e$B$,B8:$7$F$O$J$i$J$$$H$O9M$($F$$$^$;$s!#e(B
e$B;d$,Bh0l$KM$7$$$b$N$O$=$l$G$O$"$j$^$;$s$,!#e(B
e$B;d$Oe(B"/“e$B$,:YJ,2=$H$+%0%k!<%W2=$H$+6qBN2=$5$l$F$$$k!”$H$$$&$he(B
e$B$&$J%$%a!<%8$,$"$k$N$G!"e(Bnet/httpe$B$O%M%C%H%o!<%/4X78$Ne(BHTTPe$B$H$$e(B
e$B$&Iw$K;W$$!"J0$j$O46$8$^$;$s$G$7$?!#%G%#%l%/%H%[email protected]$j$,e(B
"/"e$B$J$N$K1F6A$r<u$1$F$$$k$N$+$b$7$l$^$;$s!#e(B
net/http e$B$Oe(B net e$B$N2<$K$$$/$D$b$"$k$N$GJ0$j$O46$8$^$;$s!#e(B
e$BJ0$j$r46$8$k$N$Oe(B test/unit e$B$G$9!#e(B
XxxYyye$B$H$$$&%b%8%e!<%k$Oe(Bxxxyyy.rbe$B$H$$$&%U%!%$%kL>$K$9$k$H$$e(B
e$B$&=,[email protected]$$$?$+$C$?$N$G$7$?!#e(B
e$B$U$`!#[email protected]$+$i$H$$$C$Fe(B XxxYyy e$B$H$$$&%b%8%e!<%k$re(B xxx/yyy.rb
e$B$He(B
e$B$$$&%U%!%$%kL>$K$9$k$N$O$+$J$j47=,$KH?$7$^$9$+$i!"e(Bxxx-yyy.rb
e$B$K$9$k$+!"e(BXxxYyy e$B$H$$$&%b%8%e!<%kL>$O$D$1$k$Y$-$G$O$J$$$H$$e(B
e$B$&$h$&$K2r<a$G$-$^$9!#e(B
e$B$=$7$F!“e(Bxxx-yyy.rb e$B$O8=:_$N$H$3$m%b%8%e!<%kL>$O$”$^$j4X78$Je(B
e$B$$7A$G$7$+;H$o$l$F$$$J$$$N$G!"$3$l$^$?47=,$KH?$7$^$9!#e(B
e$B$H$$$&$3$H$O!“7k6I!“e(BXxxYyy e$B$H$$$&%b%8%e!<%kL>$r$D$1$k$3$H$Ke(B
e$BH?BP$7$F$$$k$H2r<a$G$-$k$N$G$9$,!”$”$C$F$^$9$+e(B?
e$BLdBj$O$=$b$=$bJ,N`$9$Y$-$+$I$&$+$H$$$&[email protected]$H;W$$$^$9!#e(B
e$B;d$O!V%(%s%3!<%G%#%s%04XO"$N5!G=!W$N!V8!=P5!G=!W$H$$$&Iw$K9Me(B
e$B$($F$7$^$&$s$G$h$M!#$?$H$(!":#$O!V%(%s%3!<%G%#%s%04XO"$N5!G=!We(B
e$B$,0l$D$7$+$J$/$F$b!#e(B
e$B;d$O!"ITMW$JJ,N`$OHr$1$?$$$H;W$C$F$$$^$9!#e(B
e$BJ,N$9$k$HL>A0$,D9$/$J$C$F;H$$$K$/$/$J$j$^$9$7!";d$N;W9M$OITe(B e$BMW$JJ,N
$KJ0$j$r46$8$k$h$&$K$G$-$F$$$k$h$&$G$9!#e(B
e$B$b$A$m$s!“I,MW$JJ,N`$OI,MW$G$”$j!“J0$j$b46$8$^$;$s$,!”:#2s$Ne(B
e$B$O$$$^$N$H$3$mI,MW$G$"$k$+$I$&$+$O$O$C$-$j$7$^$;$s!#e(B
RAA e$B$de(B freshmeat e$B$de(B sourceforge e$B$de(B CPAN
e$B$G$7$P$i$/%(%s%3!<%G%#e(B
e$B%s%0$^$o$j$N%i%$%V%i%j$r8!:w$7$F$_$?7k2L$H$7$F$O!"%(%s%3!<%G%#e(B
e$B%s%0$KD>@\4XO"$9$k%i%$%V%i%j$H$7$F$OJQ49!&?dB,!&=$I|$"$?$j$,e(B
e$B$"$j$,$A$J$h$&$G$9!#$b$&[email protected]?dB,!“9TKv8!=P$“e(B
e$B$?$j$,F~$C$F$/$k$+$b$7$l$^$;$s!#e(B([email protected]?dB,$O%(%s%3!<%G%#%s%0e(B
e$B?dB,$HL)@$K4XO”$7$F$$$^$9$,!#e(B) e$B$5$i$K9-$2$k$H%m!<%^;z$+$JJQe(B
e$B49$H$+BgJ8;z>.J8;zJQ49$H$+$,F~$C$F$-$^$9$,!”$3$N$X$s$K$J$k$He(B
e$B%(%s%3!<%G%#%s%0$OC1$J$kF;6q$G!"%(%s%3!<%G%#%s%04XO"$N5!G=$He(B
e$B$O$$$($J$$$h$&$J5$$b$7$^$9!#e(B
e$B;d$N0u>]$H$7$F$O$=$s$J$K9-$,$i$J$=$&$G!"J,N$NI,[email protected]$O$"$^$je(B e$B46$F$$$^$;$s!#[email protected]!"e(BUnicode e$B$J%7%9%F%
$G$O%(%s%3!<%G%#%s%0$Ke(B
e$B4X$9$k=hM}$,303&$H$N$d$j$H$j$N$H$3$m$K=8Cf$9$k$N$,EvA3$G!“JQe(B
e$B49$,4pK$K$J$k$N$bMF0W$KA[A|$G$-$k$o$1$G$9$,!“e(BRuby e$B$G$O303&e(B
e$B$H$N$d$j$H$j$N$H$3$m$K=8Cf$7$J$$e(B (e$B$h$&$K$b=q$1$ke(B)
e$B$N$G!”$J$Ke(B
e$B$+0c$&<oN`$N5!G=$,I,MW$H$5$l$k$3$H$b$”[email protected]$k$N$+$b$7$l$^$;$s!#e(B
e$BJ,N`$NI,[email protected]$K4X$9$k7hCG$rCY$i$;$kJ}K!$H$7$F$Oe(B
Encoding.detection_open e$B$H$+$K$7$Fe(B encoding.rb e$B$K$9$k$H$$$&e(B
e$BJ}K!$,$"$j$^$9$,!";d$N463P$+$i$9$k$H$A$g$C$HD9$$$s$G$9$h$M$’!#e(B
e$B$R$H$D6qBNNc$r$"$2$k$H!“e(BSF.nete$B$Ke(BHTMLe$B!JA4It$,e(BXHTMLe$B$H$$$&$o$1$Ge(B
e$B$O$J$$$G$9$,!K$r%”%C%W%m!<%I$9$k;~$Ke(BSF.nete$B$N%m%4$rF~$l$k$H$-e(B
e$B$K;H$&$3$H$,$"$j$^$9!#!Je(BSF.nete$B$K%"%C%W%m!<%I$9$ke(BHTMLe$B$K$Oe(B
SF.nete$B$N%m%4$rF~$l$J$-$c$$$1$J$$$N$G!#!Ke(B
e$B$o$+$C$?$&$($G$d$j$?$1$l$P$d$l$P$$$$$s$8$c$J$$$G$7$g$&$+!#e(B
chdire$B$9$kA0$Ke(Bfile.detect_encoding!e$B!J2>!K$7$F$M!"$H$$$&$N$G$Oe(B
e$B<e$$$G$7$g$&$+!)e(B
e$B$=$&$$$&Cm0U$,ITMW$Je(B API e$B$r%G%6%$%s2DG=$J$N$K!"$J$<$o$6$o$6e(B
e$B%f!<%6$,LdBj$KCm0U$7$J$1$l$P$J$i$J$$e(B API e$B$r9%$`$N$G$7$g$&e(B?
StringIOe$B$de(BTempfilee$B$J$Ie(BIOe$B$C$]$$%U%!%$%k0J30$N$b$N$K$b;H$$$?$/e(B
e$B$J$$!)[email protected][email protected]$1$G$7$?!#e(B
e$B6qBNNc$O$I$s$J$N$,$"$k$s$G$7$g$&e(B?
StringIO e$B$de(B Tempfile e$B$K$D$$$F%(%s%3!<%G%#%s%0$r$I$&07$&$N$,e(B
[email protected]$7$$$+$H$$$&$3$H$r9M$($k$H!"[email protected]@.$7$?$d$j$+$?e(B
e$B$r9M$($F%(%s%3!<%G%#%s%[email protected]$k$N$,@5$7$$$h$&$K;W$($^$9!#e(B
e$B$=$l$G$O$&$^$/$J$$!"$H$$$&Nc$K$O$I$s$J$N$,$"$j$^$9$+e(B?
e$B$d$O$j!"e(BEncDet.opene$B$,$=$l$[$I$?$/$5$s;H$o$l$k$b$N$J$N$+$,$o$+e(B
e$B$j$^$;$s!#e(B
e$B:#$N$H$3$m!“6qBNNc$H$7$Fe(BRDoce$B$G$Ne(BRubye$B%9%/%j%W%H$NFI$9~$!”$He(B
e$B$$$&$N$,$G$F$$$^$9$,!"$=$l0J30$N>l9g$G;H$o$l$k$3$H$OB?$$$N$Ge(B
e$B$7$g$&$+!)$H$$$&$N$b!"%9%/%j%W%H$rFI$_9~$$3$H$O$=$s$J$K$J$$e(B e$B$N$G$O$J$$$+$H;W$C$F$$$k$+$i$G$9!#e(BPythone$B$de(BEmacse$B$GJT=8$9$k%U%!e(B e$B%$%k$Ge(Bmagic commente$B$r;H$C$F$$$k$N$O$o$+$k$N$G$9$,!"$=$l$i$Ne(B e$B%U%!%$%k$rFI$_9~$
$3$H$,B?$$$N$+$,$o$+$j$^$;$s!#e(B
e$B%F%-%9%H$r=hM}$9$k!"$H$$$&$N$O=<J,$KB?$$$h$&$K;W$$$^$9!#e(B
e$B$?$H$($P!“e(BRD e$B$N%W%j%W%m%;%C%5$r=q$$$?$H$7$F!”%W%j%W%m%;%C%5e(B
e$B$,e(B RD e$B$G5-=R$5$l$?%F%-%9%H$rFI$`$H$-$K!“F|K\8l$r07$$$?$$$H$9e(B
e$B$l$P!”%(%s%3!<%G%#%s%0$r$I$&$K$+$9$kI,MW$,$"$j$^$9!#%F%-%9%He(B
e$B$re(B Emacs
e$B$GJT=8$9$k$H$9$l$P!":#2s$N$h$&$J%i%$%V%i%j$,$"$l$P!"e(B
e$B%(%G%#%?$H%W%j%W%m%;%C%5$G%(%s%3!<%G%#%s%0;XDj$r6&MQ$G$-$^$9!#e(B
RD e$B$K$+$.$i$:!"%W%l%$%s%F%-%9%H$K6a$$%U%)!<%^%C%H$G$"$l$P$Ie(B
e$B$l$bF1$8;v>p$,@.$jN)$D$G$7$g$&!#e(B
[email protected]_Dj%U%!%$%k$b$=$&$G$9!#:G6a$Oe(B YAML
e$B$,B?$$$h$&$J5$$,$7$^$9$,!“e(B
e$B<+A0$N%Q!<%6$r;}$C$F$$$k%”%W%j%1!<%7%g%s$b>/$J$/$O$J$$$G$7$ge(B
e$B$&!#@_Dj%U%!%$%k$NCf$KF|K\8l$rF~$l$?$$$H$9$l$P%(%s%3!<%G%#%se(B
e$B%0$r$I$&$K$+$7$J$1$l$P$J$i$:!":#2s$N$h$&$J%i%$%V%i%j$,Lr$KN)e(B
e$B$A$^$9!#e(B
e$B$^$?!“e(BCERN httpde$B7A<0$O$h$/;H$o$l$F$$$k$N$+!”$=$7$F$=$l$rMxMQe(B
e$B$7$?%U%!%$%k$rFI$_9~$`$3$H$OB?$$$N$+$H$$$&$N$b$o$+$j$^$;$s!#e(B
e$B$3$A$i$O$$$^$N$H$3$m$"$^$jIa5Z$7$F$$$k$H$O;W$$$^$;$s!#e(B
e$B$7$+$7!"$I$s$J%U%!%$%k$K$G$b%(%s%3!<%G%#%s%0$r$D$1$i$l$k$H$$e(B
e$B$&[email protected]<A$r;}$C$F$*$j!"$^$?!"%(%s%3!<%G%#%s%00J30$N>pJs$bF~e(B
e$B$l$i$l$k$?$a!"$$$m$$$m$HJXMx$J$s$8$c$J$$$+$H9M$($F$$$^$9!#e(B
e$B$=$&$$$&>lLL$,B?$$$N$G$"$l$PL>A0$rC;$/$7$?$$$H$$$&M_5a$O$o$+e(B
e$B$i$J$/$b$J$$$G$9!#[email protected]!";d$N7P83$G$O$=$s$J$K$J$$$s$8$c$J$$$+e(B
e$B$J$!$H$$$&46$8$G$9!#e(B
e$BIT;W5D$J$s$G$9$,!“F|K\8l$r4^[email protected]%F%-%9%H$r07$&$H$-!”$I$&$d$Ce(B
e$B$F%(%s%3!<%G%#%s%0$r=hCV$7$F$$$k$s$G$9$+e(B?
e$B$H!";W$C$Fe(B Rabbit e$B$Ne(B README.ja
e$B$r$$F$$k$H!“e(B–encoding e$B%%We(B
e$B%7%g%s$+<+F08!=P$N$h$&$G$9$M!#<+F08!=P$,$&$^$/$$$/$N$G$"$l$P!"e(B
e$BI,[email protected]$r46$8$J$$$N$+$J$!!#<+F08!=P$O$&$^$/$$$+$J$$$1$l$I!"Khe(B
e$B2se(B --encoding e$B%%W%7%g%s$r;XDj$9$k$N$OLLE]!”$H$$$&$H$-$KLr$Ke(B
e$BN)$D$s$G$9$,!#e(B
EncDet.make_magic_comment(“euc-jp”) e$B$,e(B
“-- coding: euc-jp --” e$B$rJV$9$H$+!#e(B
e$B$&!<$s!";H$$$d$9$$$G$7$g$&$+!#e(B
e$B$b$7!":#8ee(BXMLe$B$r%5%]!<%H$7$?>l9g$O",$N7A<0$O;H$($^$;$s$h$M!#e(B
e$B8!=P$Oe(Bmagic commente$B0J30$b4hD%$k$1$I!"=PNO$Oe(Bmagic commente$B$N$_e(B
e$B%5%]!<%H$H$$$&$N$G$b$$$$$G$7$g$&$1$I!"=PNO$b%i%$%V%i%j$,$&$^e(B
e$B$$6q9g$K4hD%$C$F$[$7$$5$$,$7$^$9!#!J$d$k$J$i!Ke(B
EncDet.make_xml_decl e$B$b:n$k$3$H$O=PMh$^$9!#e(B
[email protected]!"$J$s$K$7$mF~NO$Oe(B magic comment e$B$G$be(B BOM
e$B$G$b$I$l$+$R$He(B
e$B$D$N7A<0$G8!=P$G$-$l$P$=$l$K$9$k$H$$$&$b$N$J$N$KBP$7!"=PNO$Oe(B
e$B$I$N7A<0$K$9$k$+%f!<%6$,;XDj$9$kI,MW$,$"$j$^$9!#$I$&4hD%$C$Fe(B
e$B$b!"7A<0$N>pJs$rDs6!$7$J$/$F$b$$$$$h$&$K$O$J$i$J$$$G$7$g$&$M!#e(B