Binary String

e$B@.@%$G$9!#e(B

Hidetoshi NAGAI wrote:

e$B%3%^%s%I%i%$%s%*%W%7%g%s$rIU$1$F$b!$e(B
ASCII-8BIT e$B$K$J$k$H$-$O$J$C$A$c$$$^$9$h$M!%e(B
e$BNc$($Pe(B

$ ruby19 --encoding=euc-jp -e ‘p “aaa”.encoding’

e$B$H$+$Oe(B ASCII-8BIT e$B$G$9$h$M!%e(B

e$B$3$&$$$&%1!<%9$G$Oe(B US-ASCII e$B$H$+$K$J$C$?J}$,$$$$$N$+$b!)e(B

e$BJQ49$K$D$$$F$NJ8L.$G$O!“e(BASCII only e$B$NJ8;zNs$,e(B ASCII-8BIT
e$B$GJV$C$F$-$F$be(B
e$BLdBj$O$”$j$^$;$s$h$M!#e(B

US-ASCII
e$B$K$J$C$?J}$,$$$$$+$b$H$$$&$N$K$O;?@.$G$9!#0JA0$O!Ve(BUS-ASCII
e$B$O%Se(B
e$B%k%H%$%s$G$O$J$$$+$i!W$H$$$&$N$,M}M3$@$C$?$N$G$9$,!":#$Oe(B US-ASCII
e$B$b%S%ke(B
e$B%H%$%s$5$l$k$h$&$K$J$C$?$N$G!#e(B

In article [email protected],
Hidetoshi NAGAI [email protected] writes:

e$B$9$$^$;$s!%8=:<j;}$A$N%5%s%W%k$,$"$j$^$;$s!%e(B

[ruby-dev:33121] e$B$G=R$Y$i$l$F$$$ke(B 1.8
e$B$H$N8_49@-$K4X$9$kOC$O!"e(B
e$B$+$J$j6qBNE*$JNc$K6a$$$H;W$$$^$9!#2r7hK!$O$H$b$+$/!"F05!$H$7e(B
e$B$F$OM}2r$G$-$^$9!#e(B

e$B$G$b!$$=$l$O$=$l$G$^$:$/$J$$$G$9$+!)e(B
e$BCN$i$J$$e(B charset (encoding) e$B$G$N=hM}$,MW5a$5$l$?$J$i$P!$e(B
e$BNc30$r>e$2$k$Y$-$G$7$g$&!%e(B
e$B$=$&$7$?Nc30$rL5;k$7$FL$Dj5A$N$^$^07$&$N$G$"$l$P!$e(B
e$B2?$,5/$C$F$be(B (Tk e$B$G$N?dB,8m$j$r4^$a$Fe(B) e$BJ86g$O8@$($J$$$H;W$$$^$9!%e(B

e$BNc30$,E,@Z$+$I$&$+$O%"%W%j%1!<%7%g%s$K$h$k$G$7$g$&!#e(B

e$B$?$H$($P!“e(BHTTP e$B$GC10l$N%U%!%$%k$r%@%&%s%m!<%I$9$k%”%W%j%1!<e(B
e$B%7%g%s$@$C$?$iNc30$K$h$C$F%@%&%s%m!<%I$,<:GT$9$k$H$$$&$N$OE,e(B
e$B@Z$JF0:n$H$O;W$($^$;$s!#e(B

HTTP e$B$GFI$_9~$s$G$-$?%G!<%?$,e(B tk e$B$K$?$I$j$D$/$N$G$"$l$PNc30e(B
e$B$,E,@Z$+$b$7$l$^$;$s$,!"C1$K%U%!%$%k$K3JG<$9$k$@$1$@$C$?$ie(B
ASCII-8BIT e$B$K$J$C$F$$$F$bLdBj$J$$$G$7$g$&!#e(B

e$B$3$3$G$NLdBj$O!“e(BHTTP e$B$GFI$_9~$s$G$/$k%i%$%V%i%j$NCf$G$=$l$re(B
e$BH=CG$G$-$k$+!”$H$$$&E@$G$9!#e(B

e$B;d$H$7$F$O!"$=$l$OFq$7$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

e$B;XDj$,$"$C$?$1$l$I$be(B Ruby e$B$,CN$i$J$+$C$?>l9g$He(B
e$B;XDj$,$J$$>l9g$H$rJ,$1$k$3$H$,$G$-$k$h$&$K$9$k$H$$$&$N$be(B
e$BNI$/$J$$$H$*9M$($G$9$+!)e(B

e$BNI$/$J$$$H$$$&$[$I$O$C$-$j$H3N?.$,$“$k$o$1$G$O$”$j$^$;$s$,!“e(B
e$B$=$s$J$KLr$KN)$D$N$@$m$&$+!”$H$$$&5?Ld$O$"$j$^$9!#e(B

e$BM=A[$H$7$F!“$”$kDxEYe(B Ruby e$B$,CN$C$F$$$k$b$N$,A}$($F$/$k$H!“e(B
Ruby e$B$,CN$i$J$$>l9g$H$$$&$N$O!”;XDj$,4V0c$C$F$$$k%1!<%9$,B?e(B
e$B$/$r@j$a$F$/$k$N$G$O$J$$$+$H$$$&5$$,$7$^$9!#e(B

e$B$?$H$($P!“e(BHTTP e$B$Ge(B charset
e$B%Q%i%a!<%?$,4V0c$C$F$$$k$H$$$&$N$Oe(B
e$B$=$l$J$j$K$”$j$=$&$J$3$H$@$H;W$$$^$9!#$=$7$F!“$=$&$$$&4V0c$Ce(B
e$B$?L>A0$re(B Ruby e$B$,:G=i$+$iCN$C$F$$$k$h$&$K$J$k$+$H$$$&$H!”$J$ie(B
e$B$J$$$H;W$$$^$9!#e(B

e$B$=$&$$$&>l9g$K$I$&=hM}$9$k$+$H$$$&$H!“$^$!!“e(BASCII e$BItJ,$@$107e(B
e$B$&$/$i$$$,$$$$$s$8$c$J$$$G$7$g$&$+!#$,$s$P$C$F$7$^$C$F!”%^%ke(B
e$B%A%P%$%H$H$+e(B (e$B$”$He(B UTF-7 e$B$H$+e(B)
e$B$r8!=P$7$F$7$^$&$H4m$J$$$3$He(B
e$B$K$b$D$J$,$j$=$&$G$9$7!#$=$&$9$k$He(B ASCII-8BIT e$B$G=<J,$+$J$!!"e(B
e$B$H$+!#e(B

e$BM73Z0C$G$9!#e(B

NARUSE, Yui e$B$5$s$O=q$-$^$7$?e(B:

e$B$3$&$$$&%1!<%9$G$Oe(B US-ASCII e$B$H$+$K$J$C$?J}$,$$$$$N$+$b!)e(B

e$BJQ49$K$D$$$F$NJ8L.$G$O!“e(BASCII only e$B$NJ8;zNs$,e(B ASCII-8BIT e$B$GJV$C$F$-$F$be(B
e$BLdBj$O$”$j$^$;$s$h$M!#e(B

US-ASCII e$B$K$J$C$?J}$,$$$$$+$b$H$$$&$N$K$O;?@.$G$9!#0JA0$O!Ve(BUS-ASCII e$B$O%Se(B
e$B%k%H%$%s$G$O$J$$$+$i!W$H$$$&$N$,M}M3$@$C$?$N$G$9$,!":#$Oe(B US-ASCII e$B$b%S%ke(B
e$B%H%$%s$5$l$k$h$&$K$J$C$?$N$G!#e(B

e$B$I$s$JJ8L.$G$be(BASCII
onlye$B$NJ8;zNs$,!Ve(BASCII-8BITe$B!W$8$c$^$:$$$G$9$h!#e(B
e$B!V%F%-%9%H$J$N$Ke(BASCII-8BITe$B$J$N$O$*$+$7$$!W$C$FOC$@$C$?$8$c$J$$$G$9$+!#e(B

e$B$3$NNc$@$C$?$i!"%(%s%3!<%G%#%s%0;XDj$7$F$"$k!Ve(Beuc-jpe$B!W$K$J$k$+e(B
e$B$*Fs?M$N8@$&$h$&$K!Ve(BUS-ASCIIe$B!W$K$J$k$Y$-$@$H;W$$$^$9!#e(B

e$B@.@%$G$9!#e(B

e$BM73Z0Ce(B wrote:

$ ruby19 --encoding=euc-jp -e ‘p “aaa”.encoding’

e$B$I$s$JJ8L.$G$be(BASCII onlye$B$NJ8;zNs$,!Ve(BASCII-8BITe$B!W$8$c$^$:$$$G$9$h!#e(B
e$B!V%F%-%9%H$J$N$Ke(BASCII-8BITe$B$J$N$O$*$+$7$$!W$C$FOC$@$C$?$8$c$J$$$G$9$+!#e(B

ASCII only
e$B$O%(%s%3!<%G%#%s%0$K4X$o$i$:7k9g!&Hf3SEy$K$*$$$FFCJL07$$$J$Ne(B
e$B$G!"e(Bdummy e$B0J30$G$O<B:]>eLdBj$O5/$-$J$$$H;W$$$^$9!#e(B

e$B$3$NNc$@$C$?$i!"%(%s%3!<%G%#%s%0;XDj$7$F$"$k!Ve(Beuc-jpe$B!W$K$J$k$+e(B
e$B$*Fs?M$N8@$&$h$&$K!Ve(BUS-ASCIIe$B!W$K$J$k$Y$-$@$H;W$$$^$9!#e(B

e$B$,!"$3$N0U8+$K$O;?@.$G$9!#$b$C$H$b!“0JA0$O!Ve(BEUC-JPe$B!W$K$J$k$Y$-$8$c$J$$$+e(B
e$B$J$!$H;W$C$F$$$?$s$G$9$,!”<B:]LdBj$H$7$F$Oe(B ascii only
e$B$JJ8;zNs$N%(%s%3!<e(B
e$B%G%#%s%0$O>~$j$K$9$.$J$$$N$G$"$^$j6/$$0U8+$O;}$C$F$$$^$;$s!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:33154] Re: Binary String”
on Thu, 17 Jan 2008 20:25:01 +0900, “NARUSE, Yui”
[email protected] writes:

|> e$B$3$NNc$@$C$?$i!“%(%s%3!<%G%#%s%0;XDj$7$F$”$k!Ve(Beuc-jpe$B!W$K$J$k$+e(B
|> e$B$*Fs?M$N8@$&$h$&$K!Ve(BUS-ASCIIe$B!W$K$J$k$Y$-$@$H;W$$$^$9!#e(B
|
|e$B$,!“$3$N0U8+$K$O;?@.$G$9!#$b$C$H$b!“0JA0$O!Ve(BEUC-JPe$B!W$K$J$k$Y$-$8$c$J$$$+e(B
|e$B$J$!$H;W$C$F$$$?$s$G$9$,!”<B:]LdBj$H$7$F$Oe(B ascii only e$B$JJ8;zNs$N%(%s%3!<e(B
|e$B%G%#%s%0$O>~$j$K$9$.$J$$$N$G$”$^$j6/$$0U8+$O;}$C$F$$$^$;$s!#e(B

e$B;d$Oe(BEUC-JPe$B$K$J$k$Y$-$@$H;W$$$^$9!#8=>u$=$&$J$C$F$$$k$N$Oe(B7bit
e$B%A%'%C%/$,L@3N$G$J$+$C$?;~$NL>;D$@$H;W$$$^$9!#B>$K$J$K$+L\E*e(B
e$B$,$"$j$^$7$?$C$1!#!de(B e$B9g=I=P@J<T!"FC$KEDCf$5$se(B

e$B$b$7!“$J$s$i$+$N;v>p$Ge(BEUC-JPe$B$G$J$/e(BASCII
onlye$B$rL@<($9$kL>A0$,e(B
e$BNI$$$H$$$&$3$H$G$”$l$P!"$=$N>l9g$K$Oe(BUS-ASCIIe$B$r2!$7$^$9!#e(B

In article [email protected],
Yukihiro M. [email protected] writes:

e$B;d$Oe(BEUC-JPe$B$K$J$k$Y$-$@$H;W$$$^$9!#8=>u$=$&$J$C$F$$$k$N$Oe(B7bit
e$B%A%'%C%/$,L@3N$G$J$+$C$?;~$NL>;D$@$H;W$$$^$9!#B>$K$J$K$+L\E*e(B
e$B$,$"$j$^$7$?$C$1!#!de(B e$B9g=I=P@J<T!"FC$KEDCf$5$se(B

[ruby-dev:32046] e$B$K=q$$$?$"$?$j$G$9$+$M!#e(B

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Tanaka A. [email protected]
Subject: [ruby-dev:33151] Re: Binary String
Date: Thu, 17 Jan 2008 18:18:29 +0900
Message-ID: [email protected]

e$BNc30$,E,@Z$+$I$&$+$O%"%W%j%1!<%7%g%s$K$h$k$G$7$g$&!#e(B

e$B$?$H$($P!“e(BHTTP e$B$GC10l$N%U%!%$%k$r%@%&%s%m!<%I$9$k%”%W%j%1!<e(B
e$B%7%g%s$@$C$?$iNc30$K$h$C$F%@%&%s%m!<%I$,<:GT$9$k$H$$$&$N$OE,e(B
e$B@Z$JF0:n$H$O;W$($^$;$s!#e(B

HTTP e$B$GFI$_9~$s$G$-$?%G!<%?$,e(B tk e$B$K$?$I$j$D$/$N$G$"$l$PNc30e(B
e$B$,E,@Z$+$b$7$l$^$;$s$,!"C1$K%U%!%$%k$K3JG<$9$k$@$1$@$C$?$ie(B
ASCII-8BIT e$B$K$J$C$F$$$F$bLdBj$J$$$G$7$g$&!#e(B

e$B$&!A$s!%7k2L$H$7$F$OLdBj$J$$$N$+$b$7$l$^$;$s$,!$e(B
charset
e$B$G$N%H%i%V%k$,$"$C$?$+$I$&$+$OCN$j$?$$$s$8$c$J$$$G$7$g$&$+!)e(B
e$BNc$($P!$FI$_9~$`$K$O$9$Y$FFI$_9~$s$@>e$GNc30$r>e$2!$e(B
e$BNc30%*%V%8%'%/%H$+$i;XDj$5$l$?e(B charset e$B$HFI$_9~$s$@FbMF$H$re(B
e$B<h$j=P$;$k$h$&$K$J$C$F$$$k$H$+!%e(B

e$BHFMQ$Ne(B dummy encoding e$B$,B8:_$7$J$$$J$i!$e(B

e$B$3$N;~E@$G$Ne(B encoding e$B$Oe(B ASCII-8BIT

e$B$G$b;EJ}$J$$$N$+$b!%e(B

e$BLa$C$F$-$?J8;zNs$Ne(B encoding e$B$,e(B ASCII-8BIT
e$B$+$r%A%‘%C%/$7$Fe(B
e$B%H%i%V%k$NM-L5$rH=CG$9$k$H$$$&$N$b$"$j$G$7$g$&$1$l$I!$e(B
e$B!VLaCM%A%’%C%/!W$Oe(B Ruby e$B$i$7$/$J$$%9%?%$%k$G$9$h$M!%e(B

e$B$3$NOC$K$D$$$Fe(B

e$B$3$3$G$NLdBj$O!“e(BHTTP e$B$GFI$_9~$s$G$/$k%i%$%V%i%j$NCf$G$=$l$re(B
e$BH=CG$G$-$k$+!”$H$$$&E@$G$9!#e(B

e$B;d$H$7$F$O!"$=$l$OFq$7$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

e$B$H$$$&JU$j$G?($l$i$l$F$$$k$N$+$b$7$l$^$;$s$,!$$h$/$o$+$j$^$;$s$G$7$?!%e(B
e$B$4$a$s$J$5$$!%e(B

e$B;XDj$,$"$C$?$1$l$I$be(B Ruby e$B$,CN$i$J$+$C$?>l9g$He(B
e$B;XDj$,$J$$>l9g$H$rJ,$1$k$3$H$,$G$-$k$h$&$K$9$k$H$$$&$N$be(B
e$BNI$/$J$$$H$*9M$($G$9$+!)e(B

e$BNI$/$J$$$H$$$&$[$I$O$C$-$j$H3N?.$,$“$k$o$1$G$O$”$j$^$;$s$,!“e(B
e$B$=$s$J$KLr$KN)$D$N$@$m$&$+!”$H$$$&5?Ld$O$"$j$^$9!#e(B

e$B$=$&$G$9$M$'!%!%!%e(B
e$B$^$!!$3N$+$K!V2?$i$+$N>pJs$rMQ$$$F?dDj$r9T$&$+$I$&$+!W$Ne(B
e$BH=Dj$/$i$$$K$7$+LrN)$?$J$$$N$+$b$7$l$^$;$s!%e(B
e$BB8:_$9$k$J$ie(B Ruby/Tk e$B$G$O$b$A$m$sMxMQ$9$k$H;W$$$^$9$,!$e(B
e$BB>$N%i%$%V%i%j$d%f!<%6$,:n@.$7$?%9%/%j%W%H$K$*$$$Fe(B
e$BMxMQ$7$?$$$H9M$($k%1!<%9$,$I$NDxEY$"$k$N$+$OA[A|$G$-$^$;$s!%e(B

e$B@.@%$G$9!#e(B

Hidetoshi NAGAI wrote:

e$B$G!"e(Bdummy e$B0J30$G$O<B:]>eLdBj$O5/$-$J$$$H;W$$$^$9!#e(B

e$B$(!)e(B e$B$3$N>u67$O!$C1$K$^$@BP1~$G$-$F$$$J$$e(B/e$BBP1~$,3NDj$7$F$$$J$$$H$$$&e(B
e$B$3$H$G$O$J$$$N$G$9$+!)e(B
[ruby-dev:33110] e$B$Ge(B

e$B$$$(!"e(B[ruby-dev:32046]
e$B$G0lEY=P$F$$$k$N$G$9$h!#Ev;~$H>u67$,<c430[$J$C$Fe(B
e$B$O$$$^$9$,!#e(B

e$B$H=R$Y$i$l$F$^$9$,!$$3$l$r8@$$49$($k$H!$!Ve(Bencoding e$B$r;XDj$9$l$Pe(B
ASCII-8BIT e$B$re(B binary e$B$H$7$F07$&$3$H$KBE6($7$?$N$G$9$,!%!%!%e(B
e$B!VJ8;zNs$R$H$D$R$H$D$K!W$H$$$&$N$rIU$1$J$1$l$P$J$i$J$/$J$j$^$9!%e(B
e$B$=$l$O$"$^$j$KMW5a$,87$7$$$N$G$O$J$$$G$7$g$&$+!%e(B

e$B7|G0$r46$8$k$N$O$4$b$C$H$b$G!"Ev;~$b:#$b0cOB46$O46$8$F$O$$$k$N$G$9$,!“EDe(B
e$BCf$5$s$N8@$&6I=j@-$rGK$kDxEY$K6/$$:,5r$r7k6I8+$D$1$i$l$J$+$C$?$N$G$9$h!#e(B
e$B:,5r$,$J$$0J>e$”$^$j6/$/$O8@$$$E$i$$$N$G$9!#e(B

e$B$I$&$9$Y$-$H$$$&$h$&$J0U8+$OFC$K$"$j$^$;$s!%e(B
e$BEv;~$$$m$$$m9M$($?$N$G$9$,!"$o$?$7$NCf$G$Oe(B ascii only
e$B$NJ8;zNs$Oe(B
encoding
e$B$r?.MQ$7$F$O$J$i$J$$!"$H$$$&7kO@$KMn$ACe$-$^$7$?!#$H$$$&$N$b!“e(B
e$BCf?H$,e(B ascii only e$B$N>l9g$Oe(B encoding
e$B$K2?$,$D$$$F$$$h$&$H$be(B ascii only e$B$Ge(B
e$B$”$k$H$$$&>pJs$,M%@h$9$k$Y$-$K;W$o$l$?$N$G!#e(B(e$BNc30$Oe(B dummy
e$BEye(B ASCII
compatible e$B$G$J$$;~e(B)

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: “NARUSE, Yui” [email protected]
Subject: [ruby-dev:33154] Re: Binary String
Date: Thu, 17 Jan 2008 20:25:01 +0900
Message-ID: [email protected]

ASCII only e$B$O%(%s%3!<%G%#%s%0$K4X$o$i$:7k9g!&Hf3SEy$K$*$$$FFCJL07$$$J$Ne(B
e$B$G!"e(Bdummy e$B0J30$G$O<B:]>eLdBj$O5/$-$J$$$H;W$$$^$9!#e(B

e$B$(!)e(B
e$B$3$N>u67$O!$C1$K$^$@BP1~$G$-$F$$$J$$e(B/e$BBP1~$,3NDj$7$F$$$J$$$H$$$&e(B
e$B$3$H$G$O$J$$$N$G$9$+!)e(B
[ruby-dev:33110] e$B$Ge(B

e$B$J$N$G!"e(B[ruby-dev:33049] e$B$G8@$C$F$$$kDL$jJ8;zNs$K$Oe(B encoding e$B$,I,MW$@!“e(B
encoding e$B$r@_Dj$7$h$&!”$H$J$k$o$1$G$9!#%F%-%9%H%G!<%?$J$N$Ke(B ASCII-8BIT
e$B$N$^$^$K$J$C$F$$$kJ}$,$*$+$7$$$s$G$9$h!#$=$3$+$iL$r$=$`$1$Fe(B ASCII-8BIT
e$B$,:.FY$H$7$F$$$k$^$^$J8B$j!"0lIt$N%P%$%J%j%G!<%?$re(B BINARY e$B$G3VN%$7$F$bLde(B
e$BBj$N2r7h$K$O$J$j$^$;$s!#e(B

e$B$G!“<B:]$N$H$3$m!”%F%-%9%H%G!<%?$Ke(B encoding e$B$r$-$A$s$H@Dj$9$l$P!"e(BASCII-
8BIT e$B$Je(B string e$B$O%P%$%J%j%G!<%?$H$7$F$
$J$7$F$7$^$&$N$GLdBj$J$$$N$G$O$Je(B
e$B$$$+!#2?$+%@%a$JNc$"$k!)$H$$$&$N$,$3$l$+$i$NOC$G$7$g$&$+!#e(B

e$B$H=R$Y$i$l$F$^$9$,!$$3$l$r8@$$49$($k$H!$!Ve(Bencoding
e$B$r;XDj$9$l$Pe(B
ASCII-8BIT e$B$OIU$+$J$$$s$@$+$i!$e(Bencoding
e$B$r;XDj$7$F$$$J$$$N$,0-$$!%e(B
e$B$@$+$ie(B ASCII-8BIT e$B$re(B binary
e$B$H$7$F$bLdBj$J$$!W$H$$$&$3$H$G$9$h$M!)e(B
e$B$D$^$j$O!$M-8z$Je(B encoding e$B$r;XDj$7$F$$$k8B$j!$e(B
e$BK\Mh$Oe(B ASCII-8BIT e$B$,IUM?$5$l$F$O$J$i$J$$$N$G$O$J$$$N$G$9$+!)e(B
e$B:#2s$NNc$OM-8z$Je(B encoding
e$B$r;XDj$7$F$$$kNc$H9M$($F$$$$$G$9$h$M!%e(B

e$B!VL7=b$7$F$$$J$$!W$H$$$&>r7o$bIU$/$N$+$bCN$l$^$;$s$,!$e(B

e$B>/$J$/$H$b:#2s$NNc$Oe(B encoding

e$B;XDj$H$NL7=b$O$7$F$$$J$$$O$:$G$9!%e(B

e$B$=$3$^$G6/$/$*$C$7$c$C$F$$$?$N$G!$8_49@-$r<N$F$k3P8g$r$7$Fe(B
ASCII-8BIT e$B$re(B binary e$B$H$7$F07$&$3$H$KBE6($7$?$N$G$9$,!%!%!%e(B

e$B$G$9$+$i!$:#2s$NNc$r!V;veLdBj$,5/$-$J$$$H;W$$$^$9!W$Ge(B
e$B%9%k!<$5$l$F$7$^$&$H:$$j$^$9!%e(B

e$B8=:_$N$H$3$m$OLdBj$O@8$8$J$$$O$:$G$9$,!$>-Mh!$e(BTcl/Tk
e$B>e$K$*$$$Fe(B
StringObj e$B7O$N4X?t$G=hM}$9$k$+e(B ByteArrayObj
e$B7O$N4X?t$G=hM}$9$k$+$Ge(B
e$BLdBj$,H/@8$9$k2DG=@-$,$J$$$H$O8@$$@Z$l$^$;$s!%e(B
e$B!Ve(Bencoding e$B$r;XDj$9$l$Pe(B ASCII-8BIT
e$B$OIU$+$J$$!W$H$$$&A0Ds$G$“$l$P!$e(B
e$B$=$&$7$?>l9g$G$b!V@5$7$/e(B encoding
e$B$r@_Dj$9$k$3$H$GBP1~$7$F$/$@$5$$!We(B
e$B$H8@$($^$9$,!$$=$NA0Ds$,@.$jN)$?$J$$$J$i$PEz$($NA0$Ke(B
e$B!VJ8;zNs$R$H$D$R$H$D$K!W$H$$$&$N$rIU$1$J$1$l$P$J$i$J$/$J$j$^$9!%e(B
e$B$=$l$O$”$^$j$KMW5a$,87$7$$$N$G$O$J$$$G$7$g$&$+!%e(B

e$B$3$NNc$@$C$?$i!“%(%s%3!<%G%#%s%0;XDj$7$F$”$k!Ve(Beuc-jpe$B!W$K$J$k$+e(B
e$B$*Fs?M$N8@$&$h$&$K!Ve(BUS-ASCIIe$B!W$K$J$k$Y$-$@$H;W$$$^$9!#e(B

e$B$,!“$3$N0U8+$K$O;?@.$G$9!#$b$C$H$b!“0JA0$O!Ve(BEUC-JPe$B!W$K$J$k$Y$-$8$c$J$$$+e(B
e$B$J$!$H;W$C$F$$$?$s$G$9$,!”<B:]LdBj$H$7$F$Oe(B ascii only e$B$JJ8;zNs$N%(%s%3!<e(B
e$B%G%#%s%0$O>~$j$K$9$.$J$$$N$G$”$^$j6/$$0U8+$O;}$C$F$$$^$;$s!#e(B

e$B:G=i$O;d$be(B euc-jp e$B$G$O$H;W$$$^$7$?$,!$e(B8bit char
e$B$r4^$s$G$$$J$$$J$ie(B
euc-jp e$B$G$J$$J}$,JXMx$,$$$$$H$$$&H=CG$G9T$C$F$$$k$N$+$b$H;W$$!$e(B
US-ASCII e$B$H=q$$$F$^$7$?!%e(B
e$B$G$9$N$G!$!Ve(BASCII-8BIT e$B$G$O$^$:$$$@$m$&!W$H$$$&0J>e$K$Oe(B
e$B$I$&$9$Y$-$H$$$&$h$&$J0U8+$OFC$K$"$j$^$;$s!%e(B

In article [email protected],
Hidetoshi NAGAI [email protected] writes:

e$B$&!A$s!%7k2L$H$7$F$OLdBj$J$$$N$+$b$7$l$^$;$s$,!$e(B
charset e$B$G$N%H%i%V%k$,$"$C$?$+$I$&$+$OCN$j$?$$$s$8$c$J$$$G$7$g$&$+!)e(B
e$BNc$($P!$FI$_9~$`$K$O$9$Y$FFI$_9~$s$@>e$GNc30$r>e$2!$e(B
e$BNc30%*%V%8%'%/%H$+$i;XDj$5$l$?e(B charset e$B$HFI$_9~$s$@FbMF$H$re(B
e$B<h$j=P$;$k$h$&$K$J$C$F$$$k$H$+!%e(B

e$BMQES$K$h$k$s$8$c$J$$$G$7$g$&$+!#e(B

wget e$B$GC10l%U%!%$%k$r%@%&%s%m!<%I$9$k$N$HF1$8$h$&$J$3$H$r9Te(B
e$B$&%"%W%j%1!<%7%g%s$J$iNc30$OLLE]$J$@$1$G$7$g$&!#e(B

e$B$b$A$m$s!“e(Bcharset e$B$K6=L#$r;}$D%”%W%j%1!<%7%g%s$b$"$k$H;W$$$^e(B
e$B$9!#e(B

e$B$=$&$G$9$M$'!%!%!%e(B
e$B$^$!!$3N$+$K!V2?$i$+$N>pJs$rMQ$$$F?dDj$r9T$&$+$I$&$+!W$Ne(B
e$BH=Dj$/$i$$$K$7$+LrN)$?$J$$$N$+$b$7$l$^$;$s!%e(B
e$BB8:_$9$k$J$ie(B Ruby/Tk e$B$G$O$b$A$m$sMxMQ$9$k$H;W$$$^$9$,!$e(B
e$BB>$N%i%$%V%i%j$d%f!<%6$,:n@.$7$?%9%/%j%W%H$K$*$$$Fe(B
e$BMxMQ$7$?$$$H9M$($k%1!<%9$,$I$NDxEY$"$k$N$+$OA[A|$G$-$^$;$s!%e(B

e$BA0ED$5$s$Ne(B [ruby-dev:33164] e$B$b6=L#?<$$Nc$G$9$M!#e(B

Ruby 1.8 e$B$+$ie(B Marshal e$B7PM3$G$d$C$F$-$?e(B String
e$B$K?dDj$r9T$$$?e(B
e$B$$$+$I$&$+$H$$$o$l$F$b!“$=$l$@$1$N>r7o$G$O$I$C$A$H$b$$$$$,$?e(B
e$B$$5$$,$7$^$9!#$H$$$&$+!“N>J}$N%1!<%9$,$”$k$G$7$g$&!#;DG0$J$3e(B
e$B$H$K$=$Ne(B String e$B$,:n$i$l$k85$K$J$C$?$H$3$m$Ke(B encoding
e$B$,L@<(e(B
e$B$5$l$F$$$?$N$+$I$&$+$Oe(B Ruby 1.9
e$BB&$+$i$O3NG’$N=Q$,$”$j$^$;$s!#e(B

tk e$B$H$7$F$Oe(B String e$B$r@8@.$9$kB&!"$D$^$je(B Marshal
e$B$G$I$A$i$+H=e(B
e$BCG$7$F6hJL$rIU$1$F$[$7$$$N$+$b$7$l$^$;$s$,!"e(BMarshal e$B$G$d$l$He(B
e$B$$$o$l$F$b$J$!!#e(B

Gimitee$B$H$$$$$^$9!#e(B
e$B2#$+$i$9$$$^$;$s!#e(B

e$BEDCf$5$s$Oe(B

e$B$=$7$F!“E,@Z$Je(B encoding e$B$r;XDj$9$k$3$H$,:$Fq$G$”$k$J$i!"$=$Ne(B
e$B:$Fq$5$r=|5n$9$k;Y1g$r9T$&$3$H$r$^$:Bh0l$K9M$($k$Y$-$G$9!#$=e(B
e$B$l$r=<J,$K9M$($?7k2L!"$=$l$,L5M}$G$"$k$H3N?.$,;}$F$?;~$K!"$Oe(B
e$B$8$a$F0c$&7A$N;Y1ge(B (e$BNc$($Pe(BBINARY e$B$NF3F~$H$+e(B)e$B$r9M$($k$Y$-$G$7$ge(B
e$B$&!#e(B

e$B@.@%$5$s$Oe(B

e$B$G!"<B:]$N$H$3$m!"%F%-%9%H%G!<%?$Ke(B encoding e$B$r$-$A$s$H@Dj$9$l$P!"e(BASCII-
8BIT e$B$Je(B string e$B$O%P%$%J%j%G!<%?$H$7$F$
$J$7$F$7$^$&$N$GLdBj$J$$$N$G$O$Je(B
e$B$$$+!#2?$+%@%a$JNc$"$k!)$H$$$&$N$,$3$l$+$i$NOC$G$7$g$&$+!#e(B

e$B$H8@$C$F$$$^$7$?$,!“e(B
(a)
e$B%a!<%k$de(BHTTPe$B$G<u$1<h$C$?%G!<%?$Ne(Bcharsete$B%Q%i%a!<%?$KCN$i$J$$L>A0$,=q$$$F$”$C$?$H$-!Je(Bby
e$BEDCf$5$s!Ke(B
(b) Ruby 1.8 e$B$+$ie(B Marshal e$B7PM3$G$d$C$F$-$?e(B
Stringe$B!Je(B[ruby-dev:33164]e$B!Ke(B
e$B$O!"!VE,@Z$Je(B encoding
e$B$r;XDj$9$k$3$H$,:$Fq!W$JNc$G$"$j!"$3$l$i$re(BASCII-8BITe$B$H$7$F$7$^$&$H!Ve(B8BIT
e$B$Je(B string
e$B$O%P%$%J%j%G!<%?$H$7$F$_$J$7$F$7$^$&!W$G$OLdBj$,$"$kNc!"$@$H;W$$$^$9!#$3$l$K$D$$$F$O$I$N$h$&$K9M$($F$$$k$N$G$7$g$&$+!)Nc$($P!"e(B

e$B$3$l$i$ONc30E*$J%1!<%9$J$N$G!"L5;k$9$k!#$3$l$i$,%P%$%J%j%G!<%?$H6hJL$G$-$J$$!J$f$($KNc$($P$3$l$i$Ne(BStringe$B$re(BTke$B$K?)$o$;$k$HJ8;z2=$1$k!K$H$7$F$b;EJ}$,$J$$!#e(B

e$B$3$l$i$N%1!<%9$K$D$$$F$b2?$i$+$NJ}K!$Ge(BASCII-8BITe$B0J30$NE,@Z$Je(Bencodinge$B$,;XDj$5$l$k$Y$-!#e(B

e$B8D?ME*$K$O!"$3$N$h$&$J%1!<%9$G!V%(%s%3!<%G%#%s%0ITL@$JJ8;zNs!W$,@8@.$5$l$k2DG=@-$,$"$j!"$=$N$h$&$JJ8;zNs$H%P%$%J%j%G!<%?$r6hJL$7$?$$%1!<%9!Je(Be.g.
Tke$B!K$,$"$k0J>e!"!V%(%s%3!<%G%#%s%0ITL@!W$H%P%$%J%j%G!<%?$K$OJL!9$Ne(Bencodinge$B$r3d$jEv$F$k$Y$-$@$H;W$$$^$9!#e(B

e$B$?$@$7!“e(BTke$B$,$3$N$h$&$J!V%(%s%3!<%G%#%s%0ITL@$JJ8;zNs!W$r<u$1<h$C$?$H$-$O!“e(Blocale_charmape$B$H$_$J$7$FJQ49$9$k$N$G$O$J$/!”%(%i!<$K$9$Y$-$@$H;W$$$^$9!#>e$Ne(B(a)e$B$de(B(b)e$B$r>!<j$Ke(Blocale_charmape$B$H2>Dj$9$k$N$O4m81$G$9!#%(%i!<$K$9$k$He(B1.8e$B$H$N8_49@-$NLdBj$,$$-$^$9$,!"LdBj$,$$-$k$N$Oe(B
e$B!&%9%/%j%W%H$,%^%k%A%P%$%HJ8;zNs$r4^$s$G$$$k$,e(Bmagic
commente$B$,$J$/e(B-Ke$B%*%W%7%g%s$b$D$1$F$$$J$+$C$?>l9g!#e(B
e$B!&>e5-e(B(a)e$B$de(B(b)e$B$N$h$&$JJ8;zNs$re(Blocale_charmape$B$H2>Dj$7$F$&$^$/$$$C$F$$$?%1!<%9!#e(B
e$B$G$”$j!"$3$l$i$Oe(B1.8e$B$G$b!V$?$^$?$^F0$$$F$$$?!W$K6a$$$b$N$J$N$G!"$3$l$i$,%(%i!<$K$J$C$F$b$7$g$&$,$J$$$h$&$J5$$,$7$^$9!#e(B

Gimitee$B$G$9!#e(B

e$B8D?ME*$K$O!"$3$N$h$&$J%1!<%9$G!V%(%s%3!<%G%#%s%0ITL@$JJ8;zNs!W$,@8@.$5e(B
e$B$l$k2DG=@-$,$"$j!"$=$N$h$&$JJ8;zNs$H%P%$%J%j%G!<%?$r6hJL$7$?$$%1!<%9!Je(Be.g.
Tke$B!K$,$"$k0J>e!"!V%(%s%3!<%G%#%s%0ITL@!W$H%P%$%J%j%G!<%?$K$OJL!9$Ne(B
encodinge$B$r3d$jEv$F$k$Y$-$@$H;W$$$^$9!#e(B

e$B8=:$O!V$=$N$h$&$JJ8;zNs$H%P%$%J%j%G!<%?$r6hJL$7$?$$%1!<%9!W$OB8:$7$J$$e(B
e$B$H$$$&A0Ds$KN)$C$F$$$^$9!#$b$7$=$N$h$&$J%1!<%9$,$"$k$N$J$i$PI,MW$J$N$Ge(B
e$B$7$g$&$,!#e(B

e$B$J$k$[$I!#KM$O0l1~$3$Ne(BTke$B$N%1!<%9$G$b6hJL$G$-$?$[$&$,$$$$$H9M$($F$$$^$9!#$H$$$&$N$O!“6hJL$G$-$J$$>l9g$Oe(B
e$B!&%P%$%J%j%G!<%?“JQ49$7$J$$"@5>o$K=hM}$5$l$ke(B
e$B!&%(%s%3!<%G%#%s%0ITL@$JJ8;zNs”*JQ49$7$J$$”*J8;z2=$1$ke(B
e$B$H$$$&BP=h$7$+$G$-$J$$$N$KHf$Y$F!"6hJL$G$-$?>l9g$O!"e(B
e$B!&%P%$%J%j%G!<%?“JQ49$7$J$$"@5>o$K=hM}$G$-$ke(B
e$B!&%(%s%3!<%G%#%s%0ITL@$JJ8;zNs"Nc30$rEj$2$ke(B
e$B$H$$$&BP=h$b$G$-$k$h$&$K$J$j$^$9!J%(%i!<$NI=8=$H$7$F$OJ8;z2=$1$h$j$bNc30$N$[$&$,L@<(E
$GJ,$+$j$d$9$$$@$m$&!”$H$$$&$3$H$G!K!#e(B

e$B$^$“J8;z2=$1$@$C$F8+$l$PJ,$+$k$s$@$+$i!“Nc30Ej$2$k$N$H$=$s$J$KJQ$o$i$J$$$N$G$O!”$H8@$o$l$l$P!”$=$s$J5$$b$7$^$9$,!D!#e(B

e$B@.@%$G$9!#e(B

Hiroshi Ichikawa wrote:

(a) e$B%a!<%k$de(BHTTPe$B$G<u$1<h$C$?%G!<%?$Ne(Bcharsete$B%Q%i%a!<%?$KCN$i$J$$L>A0$,=q$$$F$"$C$?$H$-!Je(Bby e$BEDCf$5$s!Ke(B
(b) Ruby 1.8 e$B$+$ie(B Marshal e$B7PM3$G$d$C$F$-$?e(B Stringe$B!Je(B[ruby-dev:33164]e$B!Ke(B
e$B$O!"!VE,@Z$Je(B encoding e$B$r;XDj$9$k$3$H$,:$Fq!W$JNc$G$"$j!"$3$l$i$re(BASCII-8BITe$B$H$7$F$7$^$&$H!Ve(B8BIT e$B$Je(B string
e$B$O%P%$%J%j%G!<%?$H$7$F$_$J$7$F$7$^$&!W$G$OLdBj$,$"$kNc!"$@$H;W$$$^$9!#e(B
e$B$3$l$K$D$$$F$O$I$N$h$&$K9M$($F$$$k$N$G$7$g$&$+!)e(B

Tcl/Tk e$B$NJ8L.$G$O!“e(BASCII-8BIT
e$B$J$i$PJQ49$7$J$$!”$J$N$G!VLdBj$,$J$$!W$H;We(B
e$B$$$^$9!#e(B

  1. e$B$3$l$i$ONc30E*$J%1!<%9$J$N$G!"L5;k$9$k!#$3$l$i$,%P%$%J%j%G!<%?$H6he(B
    e$BJL$G$-$J$$!J$f$($KNc$($P$3$l$i$Ne(BStringe$B$re(BTke$B$K?)$o$;$k$HJ8;z2=$1$k!K$H$7$Fe(B
    e$B$b;EJ}$,$J$$!#e(B

e$B$I$NF;%(%s%3!<%G%#%s%0$,J,$+$i$J$$$N$GJ8;z2=$1$OIT2DHr$G$9!#J8;z2=$1$7$Fe(B
e$B$7$^$&$N$O;EJ}$,$"$j$^$;$s!#$b$72?$i$+$NM}M3$G%(%s%3!<%G%#%s%0$,$o$+$k$Ne(B
e$B$J$i$P!"$=$l$r@_Dj$7$F$/$@$5$$!#e(B

  1. e$B$3$l$i$N%1!<%9$K$D$$$F$b2?$i$+$NJ}K!$Ge(BASCII-8BITe$B0J30$NE,@Z$Je(B
    encodinge$B$,;XDj$5$l$k$Y$-!#e(B

e$B8D?ME*$K$O!"$3$N$h$&$J%1!<%9$G!V%(%s%3!<%G%#%s%0ITL@$JJ8;zNs!W$,@8@.$5e(B
e$B$l$k2DG=@-$,$"$j!"$=$N$h$&$JJ8;zNs$H%P%$%J%j%G!<%?$r6hJL$7$?$$%1!<%9!Je(Be.g.
Tke$B!K$,$"$k0J>e!"!V%(%s%3!<%G%#%s%0ITL@!W$H%P%$%J%j%G!<%?$K$OJL!9$Ne(B
encodinge$B$r3d$jEv$F$k$Y$-$@$H;W$$$^$9!#e(B

e$B8=:$O!V$=$N$h$&$JJ8;zNs$H%P%$%J%j%G!<%?$r6hJL$7$?$$%1!<%9!W$OB8:$7$J$$e(B
e$B$H$$$&A0Ds$KN)$C$F$$$^$9!#$b$7$=$N$h$&$J%1!<%9$,$"$k$N$J$i$PI,MW$J$N$Ge(B
e$B$7$g$&$,!#e(B

e$B<B:]$O!"!V$=$N$h$&$JJ8;zNs!W$O%(%i!<07$$$K$7$F$7$^$C$?J}$,BEEv$J$3$H$,B?e(B
e$B$$$h$&$K;W$o$l$k$N$G!"I,MW$J$$$s$8$c$J$$$+$J$!$H;W$C$F$$$^$9!#e(B

e$B$?$@$7!“e(BTke$B$,$3$N$h$&$J!V%(%s%3!<%G%#%s%0ITL@$JJ8;zNs!W$r<u$1<h$C$?$H$-e(B
e$B$O!“e(Blocale_charmape$B$H$_$J$7$FJQ49$9$k$N$G$O$J$/!”%(%i!<$K$9$Y$-$@$H;W$$$^e(B
e$B$9!#>e$Ne(B(a)e$B$de(B(b)e$B$r>!<j$Ke(Blocale_charmape$B$H2>Dj$9$k$N$O4m81$G$9!#%(%i!<$K$9e(B
e$B$k$He(B1.8e$B$H$N8_49@-$NLdBj$,$$-$^$9$,!"LdBj$,$$-$k$N$Oe(B
e$B!&%9%/%j%W%H$,%^%k%A%P%$%HJ8;zNs$r4^$s$G$$$k$,e(Bmagic commente$B$,$J$/e(B-Ke$B%*e(B
e$B%W%7%g%s$b$D$1$F$$$J$+$C$?>l9g!#e(B
e$B!&>e5-e(B(a)e$B$de(B(b)e$B$N$h$&$JJ8;zNs$re(Blocale_charmape$B$H2>Dj$7$F$&$^$/$$$C$F$$$?e(B
e$B%1!<%9!#e(B
e$B$G$”$j!"$3$l$i$Oe(B1.8e$B$G$b!V$?$^$?$^F0$$$F$$$?!W$K6a$$$b$N$J$N$G!"$3$l$ie(B
e$B$,%(%i!<$K$J$C$F$b$7$g$&$,$J$$$h$&$J5$$,$7$^$9!#e(B

e$B$3$l$O6D$kDL$j$@$H;W$$$^$9!#e(B

Gimitee$B$G$9!#e(B

e$B$=$l$C$F!“0l8+e(B strict e$B$G$$$$46$8$K8+$($^$9$1$l$I!”<BAu$Oe(B ASCII-8BIT e$B$,Mhe(B
e$B$?$i%(%i!<!"$K$J$j$^$9$h$M!#%(%i!<$@$i$1$G$^$H$b$KF0$+$J$$5$$,$9$k$N$G$9e(B
e$B$,!#5$$r$D$1$F%F%-%9%H%G!<%?$K$Oe(B encoding e$B$r!"%P%$%J%j%G!<%?$K$Oe(B binary
e$B$r0l$D0l$D$D$1$F$$$/$H$$$&$N$b$$$$$H$O;W$&$N$G$9$,!"$J$s$+0c$&$h$&$J!#e(B

e$B!V4pK\J}?K$H$7$F!“e(BASCII e$B$G$J$$J8;zNs$re(B ASCII-8BIT
e$B$G07$&$N$ONc30E*$J>u67$K$J$k$Y$-!W!JEDCf$5$s!K$H$$$&J}?K$,<i$l$l$P!”%(%i!<$@$i$1$K$O$J$i$J$$$H;W$&$N$G$9$,!D!#e(B
e$B!J5U$K!"%(%i!<$K$J$k$h$&$J2U=j$G$OE,@Z$Je(Bencodinge$B$r<jF0$G;XDj$9$k$Y$-!Ke(B

e$B8=>u$Ne(BRubye$B$N<BAu$O$^$@$3$NJ}?K$rE0Dl$G$-$F$J$$$+$i!":#$=$l$r$d$k$H%(%i!<$@$i$1$K$J$k$h!"$H$$$&$3$H$G$7$?$i!"$=$l$O$=$&$+$b$7$l$^$;$s!D!#e(B

e$B@.@%$G$9!#e(B

Hiroshi Ichikawa wrote:

e$B$J$k$[$I!#KM$O0l1~$3$Ne(BTke$B$N%1!<%9$G$b6hJL$G$-$?$[$&$,$$$$$H9M$($F$$$^$9!#$H$$$&$N$O!“6hJL$G$-$J$$>l9g$Oe(B
e$B!&%P%$%J%j%G!<%?“JQ49$7$J$$"@5>o$K=hM}$5$l$ke(B
e$B!&%(%s%3!<%G%#%s%0ITL@$JJ8;zNs”*JQ49$7$J$$”*J8;z2=$1$ke(B
e$B$H$$$&BP=h$7$+$G$-$J$$$N$KHf$Y$F!"6hJL$G$-$?>l9g$O!"e(B
e$B!&%P%$%J%j%G!<%?“JQ49$7$J$$"@5>o$K=hM}$G$-$ke(B
e$B!&%(%s%3!<%G%#%s%0ITL@$JJ8;zNs"Nc30$rEj$2$ke(B
e$B$H$$$&BP=h$b$G$-$k$h$&$K$J$j$^$9!J%(%i!<$NI=8=$H$7$F$OJ8;z2=$1$h$j$bNc30$N$[$&$,L@<(E
$GJ,$+$j$d$9$$$@$m$&!”$H$$$&$3$H$G!K!#e(B

e$B$^$“J8;z2=$1$@$C$F8+$l$PJ,$+$k$s$@$+$i!“Nc30Ej$2$k$N$H$=$s$J$KJQ$o$i$J$$$N$G$O!”$H8@$o$l$l$P!”$=$s$J5$$b$7$^$9$,!D!#e(B

e$B$=$l$C$F!“0l8+e(B strict e$B$G$$$$46$8$K8+$($^$9$1$l$I!”<BAu$Oe(B
ASCII-8BIT e$B$,Mhe(B
e$B$?$i%(%i!<!"$K$J$j$^$9$h$M!#%(%i!<$@$i$1$G$^$H$b$KF0$+$J$$5$$,$9$k$N$G$9e(B
e$B$,!#5$$r$D$1$F%F%-%9%H%G!<%?$K$Oe(B encoding
e$B$r!"%P%$%J%j%G!<%?$K$Oe(B binary
e$B$r0l$D0l$D$D$1$F$$$/$H$$$&$N$b$$$$$H$O;W$&$N$G$9$,!"$J$s$+0c$&$h$&$J!#e(B

e$B@.@%$G$9!#e(B

Hiroshi Ichikawa wrote:

e$B$^$“J8;z2=$1$@$C$F8+$l$PJ,$+$k$s$@$+$i!“Nc30Ej$2$k$N$H$=$s$J$KJQ$o$i$J$$$N$G$O!”$H8@$o$l$l$P!”$=$s$J5$$b$7$^$9$,!D!#e(B
e$B$=$l$C$F!“0l8+e(B strict e$B$G$$$$46$8$K8+$($^$9$1$l$I!”<BAu$Oe(B ASCII-8BIT e$B$,Mhe(B
e$B$?$i%(%i!<!"$K$J$j$^$9$h$M!#%(%i!<$@$i$1$G$^$H$b$KF0$+$J$$5$$,$9$k$N$G$9e(B
e$B$,!#5$$r$D$1$F%F%-%9%H%G!<%?$K$Oe(B encoding e$B$r!"%P%$%J%j%G!<%?$K$Oe(B binary
e$B$r0l$D0l$D$D$1$F$$$/$H$$$&$N$b$$$$$H$O;W$&$N$G$9$,!"$J$s$+0c$&$h$&$J!#e(B

e$B!V4pK\J}?K$H$7$F!“e(BASCII e$B$G$J$$J8;zNs$re(B ASCII-8BIT
e$B$G07$&$N$ONc30E*$J>u67$K$J$k$Y$-!W!JEDCf$5$s!K$H$$$&J}?K$,<i$l$l$P!”%(%i!<$@$i$1$K$O$J$i$J$$$H;W$&$N$G$9$,!D!#e(B
e$B!J5U$K!"%(%i!<$K$J$k$h$&$J2U=j$G$OE,@Z$Je(Bencodinge$B$r<jF0$G;XDj$9$k$Y$-!Ke(B

e$B8=>u$Ne(BRubye$B$N<BAu$O$^$@$3$NJ}?K$rE0Dl$G$-$F$J$$$+$i!":#$=$l$r$d$k$H%(%i!<$@$i$1$K$J$k$h!"$H$$$&$3$H$G$7$?$i!"$=$l$O$=$&$+$b$7$l$^$;$s!D!#e(B

e$BJ8;zNs$OB?$/$N>l9g@8@.$7$?;~E@$Ge(B encoding
e$B$,$D$$$F$$$k$H;W$&$N$G$9$,!"%Pe(B
e$B%$%J%j%G!<%?$O$$$A$$$A@_Dj$7$J$$$H$@$a$G$9$h$M!#e(B

e$B@.@%$G$9!#e(B

Tanaka A. wrote:

e$B;d$Oe(BEUC-JPe$B$K$J$k$Y$-$@$H;W$$$^$9!#8=>u$=$&$J$C$F$$$k$N$Oe(B7bit
e$B%A%’%C%/$,L@3N$G$J$+$C$?;~$NL>;D$@$H;W$$$^$9!#B>$K$J$K$+L\E*e(B
e$B$,$"$j$^$7$?$C$1!#!de(B e$B9g=I=P@J<T!"FC$KEDCf$5$se(B

[ruby-dev:32046] e$B$K=q$$$?$"$?$j$G$9$+$M!#e(B

e$B$(!<$C$H!"2~$a$F8+D>$7$F$_$^$7$?!#e(B

e$B$3$l$OJ8;zNs$N0UL#$,6I=jE*$K7h$^$k$N$GNI$$$3$H$@$H;W$C$F$$$^$9!#e(B

e$B$"$k;~E@$^$Ge(B ASCII e$B$G=q$$$F$$$?%=!<%9$G!"$"$k$H$-e(B UTF-8 e$B$NJ8e(B
e$B;zNs%j%F%i%k$r=q$$$?$H$-!"$=$N%U%!%$%kCf$NB>$N$9$Y$F$NJ8;zNse(B
e$B%j%F%i%k$be(B UTF-8 e$B$K$J$k!"$H$$$&$N$O$A$g$C$H%J%K$@$J!"$H;W$$e(B
e$B$^$9!#e(B

e$B>u67$H$7$F$O!"e(B

  1. e$B:G=i$Oe(B ASCII e$B$N$_$G=q$$$F$$$?e(B (magic comment e$B$J$7e(B)
  2. UTF-8 e$BJ8;zNs$,M_$7$/$J$C$?$N$G!"e(Bmagic comment e$B$r=q$$$?e(B
  3. e$B4{B8$Ne(B ASCII e$BJ8;zNs$Ne(B encoding e$B$O$I$&$J$k$Y$-$+e(B

e$B$G!"9M$($i$l$k$N$O!"e(B
a) UTF-8
b) US-ASCII
e$B$G$7$g$&$+!#e(B

a) UTF-8 e$B$N>l9g$O!"e(B

e$B$=$&$J$C$F$bLdBj$J$/F0$/$O$:$@!"$H$$$&0U8+$b$"$k$N$G$9$,!“M[e(B
e$B$Ke(B encoding e$B%a%=%C%I$r8F$S=P$7$?7k2L$r;H$C$F$$$k$H$=$&$H$b8Be(B
e$B$i$J$$$N$G!“e(BASCII-8BIT e$B$K7h$a$F$*$$$?$[$&$,:$$i$J$$$s$8$c$Je(B
e$B$$$+$H8+9~$s$G$$$^$9!#e(B
e$B$H$$$&HcH=$,$”$j$^$9$,!”$3$l$Oe(B encoding e$B%a%=%C%I$r;H$o$:e(B
ascii_only? e$B$re(B
e$B;H$$$^$7$g$&!"$K$J$k$N$G$9$+$M!#e(B

b) US-ASCII e$B$N>l9g$O!"e(B

  • “aaa” e$B$H$$$&J8;zNs$,$"$C$?>l9g!"$3$NJ8;zNs$Oe(B US-ASCII
    e$B$@$H$o$+$ke(B
  • acii_only? e$B$rMQ$$$k$Y$-$J$N$K!"e(B
    e$B!!e(Bstr.encoding.to_s == US_ASCII e$B$rMQ$$$F$7$^$&62$le(B

e$B$3$NBP:v$H$7$F!“e(B
b’) ASCII only e$B$NJ8;zNs$O>o$Ke(B US-ASCII e$B$rJV$9e(B
e$B$H$$$&<j$b$”$k$N$+$Je(B

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Tanaka A. [email protected]
Subject: [ruby-dev:33165] Re: Binary String
Date: Fri, 18 Jan 2008 13:24:47 +0900
Message-ID: [email protected]

e$B$$$o$l$F$b$J$!!#e(B
e$B%;%s%?!<;n83$N;n834FFD$r$7$J$,$i$D$i$D$i9M$($F$$$?$N$G$9$,!$e(B

e$B$b$A$m$s;n834FFD6HL3$OBU$j$J$/$d$C$F$^$9$h!%e(B(^_^)

Ruby 1.8 e$B$+$i$Ne(B Marshal e$B7PM3e(B String
e$B$N$3$H$^$G9M$($k$H!$e(B
UNDEFINED-8BIT (dummy encoding e$B$r$3$l$K3d$j?6$k$N$b2D!)e(B) e$B$He(B
Encoding.default_undefined e$B$H$r?7@_$7$?>e$G!$e(B
Ruby 1.9 e$B$G$Oe(B Marshal e$B$N%U%)!<%^%C%H%P!<%8%g%s$re(B
e$B>e$2$F$7$^$&$H$$$&$N$,0lHV$9$C$-$j$7$=$&$J5$$,$7$^$9!%e(B

e$B0J2<!$9M$(0c$$$r$7$F$$$?$i$9$_$^$;$s!%e(B

Ruby 1.8 e$B$G$Ne(B Marshal e$B$G$O2?$i$+$Ne(B encoding
e$B$rA[Dj$7$F$$$k$+!$e(B
encoding e$B>pJs$rJL$KJ]B8$7$F$$$k$+$N2DG=@-$,9b$$$H;W$o$l$^$9!%e(B
e$B$3$N>l9g!$?dB,$Ge(B encoding e$B$rM?$($F$b?dB,$;$:$Ke(B ASCII-8BIT
e$B$H$7$F$b!$e(B
e$BB?J,!$$I$A$i$bITJX$@$m$&$H;W$$$^$9!%e(B
e$B$G!$e(BRuby 1.9 e$B$H$7$F$O!$e(BString e$B$Ke(B encoding
e$B$OI,?$G$"$k$H9M$($k$H!$e(B
Marshal e$B$G$be(B encoding e$B$rJ]B8$7$J$1$l$P$J$i$J$$$O$:$G$9!%e(B
e$B$=$N0UL#$G$O!$e(BMarshal e$B$N%U%)!<%^%C%H%P!<%8%g%s$O>e$2$k$Y$-$He(B
e$B8@$C$F$$$$$N$G$7$g$&$+!)e(B

e$BLdBj$Oe(B Ruby 1.9 e$B$Ge(B Ruby 1.8 e$B$Ne(B Marshal e$B7PM3e(B
String e$B$re(B
e$BFI$_9~$s$@>l9g$H$$$&$3$H$G$9$h$M!)e(B

  • e$B$3$N>l9g!$e(BMarshal e$B7PM3e(B String e$B$Ne(B encoding e$B$Oe(B
    UNDEFINED_8BIT e$B$K$9$k!%e(B

  • Encoding.default_undefined e$B$N%G%U%)%k%HCM$Oe(B ASCII-8BIT
    e$B$H$7!$e(B
    UNDEFINED_8BIT e$B$r@_Dj$9$k$3$H$O$G$-$J$$$b$N$H$9$k!%e(B

  • UNDEFINED_8BIT e$B$Ne(B String e$B$r=hM}$9$k:]$K$O!$$=$Ne(B encoding
    e$B$re(B
    Encoding.default_undefined e$B$NCM$G$"$k$H$7$F=hM}$9$k!%e(B
    UNDEFINED_8BIT e$B$Ne(B String
    e$B$+$i$N=hM}7k2L$H$7$F@8@.$5$l$kJ8;zNs$Ne(B
    encoding e$B$O!$$=$N;~E@$Ne(B Encoding.default_undefined
    e$B$NCM$H$7!$e(B
    UNDEFINED_8BIT e$B$,@_Dj$5$l$k$3$H$O$J$$$b$N$H$9$k!%e(B

  • e$B;2>H$5$l$?$@$1$Ne(B String e$B$r!$e(BUNDEFINED_8BIT e$B$+$ie(B
    e$B8=:_$Ne(B default_undefined
    e$B$NCM$KJQ99$9$Y$-$+$I$&$+$OMW8!F$!%e(B
    e$B;2>H$@$1$J$iJQ99$NI,MW$O$J$$$H$$$&5$$b$9$k$,!$e(B
    index e$B$@$1$rF@$?8e$Ge(B default_undefined e$B$NCM$rJQ99$9$k$H!$e(B
    index e$B$,@5$7$/$J$/$J$k2DG=@-$,$"$k!%e(B
    e$B$H$O$$$(!$e(Bread e$B$G=q$-49$($,5/$3$k$H$7$?>l9g$Oe(B
    e$B$5$i$K:$$C$?$3$H$K$J$k2DG=@-$,9b$$!%e(B
    e$B;2>H$@$1$J$i$Pe(B encoding e$B$OJQ99$;$:!$$=$N8e$N07$$$Oe(B
    e$B!V<+8J@UG$!W$H$9$k$H$$$&$N$,BEEv$J@~$+$b!%e(B

e$BNc$($P!$e(BMarshal e$B%G!<%?$KFCDj$Ne(B encoding
e$B$rA[Dj$7$F$$$k>l9g$Oe(B
e$BC1=c$Ke(B default_undefined e$B$K$=$Ne(B encoding
e$B$r@_Dj$9$l$P$h$$$7!$e(B
Marshal e$B%G!<%?$NCf$Ke(B encoding e$B;XDj$r4^$s$G$$$k>l9g$O!$e(B
e$BJ8;zNsA`:n$NA0$K$=$Ne(B encoding e$B$re(B default_undefined e$B$Ke(B
encoding e$B$r$r@_Dj$9$l$P$h$$!%e(B

e$B$3$N%1!<%9$K8B$i$:!$e(Bencoding e$BL5;XDj$Oe(B UNDEFINED_8BIT
e$B$K$9$k$H$9$l$Pe(B
encoding e$B$rM?$($i$l$F:$$k%1!<%9$HM?$($i$l$J$/$F:$$k%1!<%9$H$Ne(B
e$BN>J}$KBP1~$G$-$=$&$J5$$,$7$^$9!%e(B

e$B%3%^%s%I%i%$%s$+$ie(B Encoding.default_undefined

e$B$,M?$($i$l$l$P!%!%!%e(B

$KCODE e$B$X$N@_Dj$,e(B Encoding.default_undefined e$B$X$N@_Dj$He(B
e$B$J$k$h$&$K$9$l$P!$8_49@-$rJ]$A$d$9$/$J$k$N$G$O$J$$$+$He(B
e$B;W$($k$N$G$9$,!%!%!%e(B

Gimitee$B$G$9!#e(B

e$BJ8;zNs$OB?$/$N>l9g@8@.$7$?;~E@$Ge(B encoding e$B$,$D$$$F$$$k$H;W$&$N$G$9$,!"%Pe(B
e$B%$%J%j%G!<%?$O$$$A$$$A@_Dj$7$J$$$H$@$a$G$9$h$M!#e(B

e$B$=$l$O$=$&$G$9$M!#$?$@!"$=$l$Oe(B1.8e$B$Ne(BRuby/Tke$B$G$bI,MW$@$C$?$3$H!J%P%$%J%j%G!<%?$OFCJL$JJ8;zNs%/%i%9$r;H$&I,MW$,$"$C$?!K$G$9$7!"Bg$7$?<j4V$G$O$J$$$H;W$$$^$9!#1J0f$5$s$be(BBINARYe$B%(%s%3!<%G%#%s%0$K$D$$$F$Oe(B

e$B$b$A$m$s<+F0E*$JH=CG$r$5$;$k$3$H$O9M$($F$$$^$;$s$7!$e(B
e$B$=$l$OIT2DG=$@$H;W$$$^$9!%e(B
e$B%9%/%j%W%H>e$GL@3N$K;XDj$7$?>l9g$K@_Dj$5$l$k$Y$-$b$N$G$9!%e(B

e$B$H8@$C$F$$$^$9$7!D!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:33186] Ruby1.9
Stringe$B!!%P%$%HNs$X$N%$%s%G%C%/%9!!%”%/%;%9e(B"
on Sat, 19 Jan 2008 23:43:14 +0900, “Hisanori Kiryu”
[email protected] writes:

|Ruby1.9e$B$Ne(BStringe$B%/%i%9e(B(e$B0J2<e(BS19e$B$HN,!K$G$O!"e(B
|Ruby1.8e$B0JA0$Ne(BStringe$B%/%i%9e(B(S18e$B$HN,!K$G$Ne(B , []=(idx, value)
|e$B$N$h$&$J!"e(BSubstringe$B$r2p$7$J$$%P%$%H$NFI$9~$!"e(B
|e$B=q$-9~$_$,$G$-$J$/$J$k$N$G$7$g$&$+!)e(B

e$B>/$J$/$H$be(B[]e$B$GC10l%P%$%H$r<h$j=P$9$3$H$O$G$-$^$;$s$M!#<B$Oe(B
[]=e$B$G%P%$%H$r%;%C%H$9$k$3$H$O$G$-$k$N$G$9$,!#e(B

e$B$G!"$3$N7o$G$9$,!"5$$,$D$$$F$$$J$$$o$1$G$O$J$$$N$G$9$,!“e(B
Stringe$B$rJ8;zNs$H$7$F07$&>l9g$H!”%P%$%HNs$H$7$F07$&>l9g$N$I$Ae(B
e$B$i$,B?$$$+$H$$$&$3$H$r4*0F$7$F!"J8;zNs$rM%@h$5$;$^$7$?!#e(B

e$B$G!“$I$N$h$&$KBP=h$9$k$+$G$9$,!”>-MhE*$K$O0J2<$NFs$D$N$&$A$$e(B
e$B$:$l$+$GBP1~$7$h$&$H9M$($F$$$^$9!#e(B

  1. e$B%P%$%HNs$r0UL#$9$k%/%i%9$rJL$KMQ0U$9$ke(B(Bytes?)
  2. e$B%P%$%HNs$H$7$F$N%"%/%;%9$r5v$9%a%=%C%I$rMQ0U$9$ke(B

e$B$*$=$i$/$Oe(B(Rubye$B$NBg%/%i%9<g5A$K=>$C$Fe(B)e$B8e<T$K$J$k$s$8$c$J$$$+e(B
e$B$H;W$$$^$9!#$8$c$“!”$J$<:#$J$$$N$+$H$$$&$H!"NI$$L>A0$,;W$$$De(B
e$B$+$J$+$C$?$+$i$G$9!#e(B

e$B$?$V$s!“FCDj$N0LCV$N%P%$%H$rFI$s$@$j=q$$$?$j$G$-$l$PNI$$$N$@e(B
e$B$H;W$&$N$G$9$,!”$J$K$+$=$l$>$l$K$U$5$o$7$$!“4J7ie(B(e$B$G$-$l$Pe(B)e$B$+e(B
e$B$DE,@Z$JL>A0$,$”$j$^$;$s$+$M!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)