$B$^$D$b$H(B $B$f$-$R$m$G$9(B r18920$B$G(BEncoding.compatible?$B$,(BTypeError$B$r$"$2$k$h$&$K$J$j$^(B $B$7$?$,!"$3$l$,0z?t%A%'%C%/$J$7$K(BBUILTIN_TYPE()$B$r;H$C$F$$$k$?(B $B$a!"(Btest_m17n.rb$B$,Mn$A$^$9!#(B $B$G$9$,!"$=$b$=$b(Bcompatible?$B$,Nc30$r$"$2$kI,MW$,$"$k$N$G$7$g(B $B$&$+!#%3%s%Q%A$+$I$&$+%A%'%C%/$7$?$$$@$1$J$N$KNc30$,>e$,$k$N(B $B$O;H$$$K$/$$5$$,$7$^$9!#:#$^$G$N$h$&$K$=$b$=$b(Bencoding$B$NBP>](B $B$G$O$J$$;~(Bnil$B!"(Bcompatible$B$G$J$$;~(Bfalse$B!"(Bcompatible$B$J;~(Btrue$B$N(B $BJ}$,NI$$$h$&$K;W$$$^$9!#(B $B$N$G!"8D?ME*$K$O(Br18920$B$r%j%P!<%H$7$?$$$N$G$9$,!"$I$&$G$7$g$&!)(B $B$b$7!"Nc30$r$"$2$k$Y$-$@$H8@$&$N$G$"$l$P!"(BBUILTIN_TYPE()$B$G$O(B $B$J$/!"(BTYPE()$B$r;H$&$Y$-$G$7$g$&!#(B
on 29.08.2008 18:55
on 30.08.2008 01:21
$B@.@%$G$9!#(B Yukihiro Matsumoto wrote: > $B$^$D$b$H(B $B$f$-$R$m$G$9(B > > r18920$B$G(BEncoding.compatible?$B$,(BTypeError$B$r$"$2$k$h$&$K$J$j$^(B > $B$7$?$,!"$3$l$,0z?t%A%'%C%/$J$7$K(BBUILTIN_TYPE()$B$r;H$C$F$$$k$?(B > $B$a!"(Btest_m17n.rb$B$,Mn$A$^$9!#(B > $B$b$7!"Nc30$r$"$2$k$Y$-$@$H8@$&$N$G$"$l$P!"(BBUILTIN_TYPE()$B$G$O(B > $B$J$/!"(BTYPE()$B$r;H$&$Y$-$G$7$g$&!#(B $B$3$N(B 2 $B$D$O$H$j$"$($:=$@5$7$^$7$?!#(B > $B:#$^$G$N$h$&$K$=$b$=$b(Bencoding$B$NBP>](B > $B$G$O$J$$;~(Bnil$B!"(Bcompatible$B$G$J$$;~(Bfalse$B!"(Bcompatible$B$J;~(Btrue$B$N(B > $BJ}$,NI$$$h$&$K;W$$$^$9!#(B $B$=$N$h$&$J;EMM$O=i<*$G$9!#(B * call-seq: * Encoding.compatible?(str1, str2) => enc or nil * * Checks the compatibility of two strings. * If they are compatible, means concatenatable, * returns an encoding which the concatinated string will be. * If they are not compatible, nil is returned. encoding.c $B$N(B rdoc $B$h$j(B r18920 $B0JA0$G$O0J2<$NDL$j$G$7$?!#(B * encoding$B$NBP>]$G$O$J$$;~(B nil * compatible $B$G$J$$;~$b(B nil * compatible $B$J;~$O$I$3$K$*$$$F(B compatible $B$+$K1~$8$F(B enc # Encoding.compatible?("\u3042", "hoge") #=> Encoding::UTF_8 # $BEy$N7k2L$,M_$7$$$N$G(B enc $B$G$"$kI,MW$,$"$k(B # $B8@$$49$($l$P!"(B2 $B$D$N(B str $B$r7k9g$7$?;~$N(B encoding $B$,JV$k(B $B$=$7$F!"(Br18920 $B$G!"(B * encoding$B$NBP>]$G$O$J$$;~(B TypeError * compatible $B$G$J$$;~$b(B nil * compatible $B$J;~$O(B enc > $B$G$9$,!"$=$b$=$b(Bcompatible?$B$,Nc30$r$"$2$kI,MW$,$"$k$N$G$7$g(B > $B$&$+!#%3%s%Q%A$+$I$&$+%A%'%C%/$7$?$$$@$1$J$N$KNc30$,>e$,$k$N(B > $B$O;H$$$K$/$$5$$,$7$^$9!#(B $B$b$H$b$H!"(BEncoding.compatible? $B$N0z?t$K(B encoding $B$rM?$($k$H(B $B4|BT$7$?$H$*$j$KF0:n$7$J$$$H$$$&$N$,$"$j$^$7$F!"(B > Encoding.compatible?(Encoding::UTF_8, Encoding::US_ASCII) => #<Encoding:ASCII-8BIT> # rb_enc_get_index() $B$O(B encoding $B$rBP>]$H$7$J$$$?$a(B $B$3$N$h$&$J8m2r$r>7$/F0:n$r$9$k$h$j$O!"(B $B7i$/Nc30$r=P$7$F$/$l$?J}$,$$$$$H9M$($^$7$?!#(B # Encoding.compatible? $B$,(B encoding $B$r<h$l$k$h$&$K$9$k$Y$-!"(B # $B$H$$$&0F$K$D$$$F$O8=:_;W0FCf(B $B$^$D$b$H$5$s$N6D$k;EMM$J$i$P0l4S@-$,$"$k$N$G$h$$$H;W$&$N$G$9$,!"(B $B8=9T$N;EMM$G$O(B compatible $B$J;~$K(B enc $B$rJV$90J>e!"(B false $B$H(B nil $B$G6hJL$H$$$&J}K!$,;H$$$E$i$$$N$,%M%C%/$G$7$g$&$+!#(B enc / false / nil $B$G$b$$$$$N$+$J$!!&!&!&!#(B r18920 $B$N0U?^$O(B Encoding.compatible? $B$,BP1~$7$F$$$k%*%V%8%'%/%H$H!"(B $BBP1~$7$F$$$J$$%*%V%8%'%/%H$r$O$C$-$j$o$1$k$3$H$@$C$?$N$G!"(B $BNc30$r=P$9$3$H$K$3$@$o$j$O$J$$$N$G$9$,!&!&!&!#(B
on 30.08.2008 08:17
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:36049] Re: TypeError from Encoding.compatible?
(r18920)"
on Sat, 30 Aug 2008 08:16:21 +0900, "NARUSE, Yui"
<naruse@airemix.jp> writes:
|> $B:#$^$G$N$h$&$K$=$b$=$b(Bencoding$B$NBP>](B
|> $B$G$O$J$$;~(Bnil$B!"(Bcompatible$B$G$J$$;~(Bfalse$B!"(Bcompatible$B$J;~(Btrue$B$N(B
|> $BJ}$,NI$$$h$&$K;W$$$^$9!#(B
|
|$B$=$N$h$&$J;EMM$O=i<*$G$9!#(B
$B$9$$$^$;$s!#(Bencoding$B$rJV$9$3$H$r<:G0$7$F$^$7$?!#(B
|> $B$G$9$,!"$=$b$=$b(Bcompatible?$B$,Nc30$r$"$2$kI,MW$,$"$k$N$G$7$g(B
|> $B$&$+!#%3%s%Q%A$+$I$&$+%A%'%C%/$7$?$$$@$1$J$N$KNc30$,>e$,$k$N(B
|> $B$O;H$$$K$/$$5$$,$7$^$9!#(B
|
|$B$b$H$b$H!"(BEncoding.compatible? $B$N0z?t$K(B encoding $B$rM?$($k$H(B
|$B4|BT$7$?$H$*$j$KF0:n$7$J$$$H$$$&$N$,$"$j$^$7$F!"(B
|> Encoding.compatible?(Encoding::UTF_8, Encoding::US_ASCII)
|=> #<Encoding:ASCII-8BIT>
|# rb_enc_get_index() $B$O(B encoding $B$rBP>]$H$7$J$$$?$a(B
|
|$B$3$N$h$&$J8m2r$r>7$/F0:n$r$9$k$h$j$O!"(B
|$B7i$/Nc30$r=P$7$F$/$l$?J}$,$$$$$H9M$($^$7$?!#(B
|# Encoding.compatible? $B$,(B encoding $B$r<h$l$k$h$&$K$9$k$Y$-!"(B
|# $B$H$$$&0F$K$D$$$F$O8=:_;W0FCf(B
$B$C$F$$$&$+!"$=$N!V;W0F!W$,=*$o$C$F$+$iJQ99$7$F$b$h$+$C$?$s$8$c(B
$B$J$$$s$G$9$+$M!#(B
|$B$^$D$b$H$5$s$N6D$k;EMM$J$i$P0l4S@-$,$"$k$N$G$h$$$H;W$&$N$G$9$,!"(B
|$B8=9T$N;EMM$G$O(B compatible $B$J;~$K(B enc $B$rJV$90J>e!"(B
|false $B$H(B nil $B$G6hJL$H$$$&J}K!$,;H$$$E$i$$$N$,%M%C%/$G$7$g$&$+!#(B
|enc / false / nil $B$G$b$$$$$N$+$J$!!&!&!&!#(B
$B$d$C$Q$j(B enc / false / nil $B$O$*$+$7$$5$$,$7$^$9$M!#$&!<$s!#(B
true / false / nil $B$K$7$F!":G>/8xG\?t$J%(%s%3!<%G%#%s%0$r5a(B
$B$a$k%a%=%C%I$OJL$K;}$D$H$+(B...$B!#(B
|r18920 $B$N0U?^$O(B Encoding.compatible? $B$,BP1~$7$F$$$k%*%V%8%'%/%H$H!"(B
|$BBP1~$7$F$$$J$$%*%V%8%'%/%H$r$O$C$-$j$o$1$k$3$H$@$C$?$N$G!"(B
|$BNc30$r=P$9$3$H$K$3$@$o$j$O$J$$$N$G$9$,!&!&!&!#(B
Encoding.compatible?$B$,$J$K$r$H$k$+$rL@3N$K$9$kI,MW$,$"$k$H;W(B
$B$$$^$9!#(B
$B$?$H$($P>-Mh(BIO$B$H$+(BStringIO$B$H$+!VJ8;zNs$N$h$&$K?6$kIq$&$J$K$+!W(B
$B$r0z?t$K$H$k$h$&$J2DG=@-$r9M$($k$H!":#$N$h$&$J%A%'%C%/(B($BJ8;zNs(B
$B$+@55,I=8=$N$_(B)$B$O$"$^$jNI$/$J$$$h$&$J5$$,$7$^$9!#(B
$B$^$D$b$H(B $B$f$-$R$m(B /:|)
on 30.08.2008 10:26
$B@.@%$G$9!#(B Yukihiro Matsumoto wrote: > |$B$3$N$h$&$J8m2r$r>7$/F0:n$r$9$k$h$j$O!"(B > |$B7i$/Nc30$r=P$7$F$/$l$?J}$,$$$$$H9M$($^$7$?!#(B > |# Encoding.compatible? $B$,(B encoding $B$r<h$l$k$h$&$K$9$k$Y$-!"(B > |# $B$H$$$&0F$K$D$$$F$O8=:_;W0FCf(B > > $B$C$F$$$&$+!"$=$N!V;W0F!W$,=*$o$C$F$+$iJQ99$7$F$b$h$+$C$?$s$8$c(B > $B$J$$$s$G$9$+$M!#(B 1.9.1 $B;EMM$N(B fix $B$,Gw$C$F$-$?$N$G!"$H$j$"$($::#$N$^$^$8$c$^$:$$$@$m$&$H!#(B $B$"$H!"(Bencoding $B$N>l9g$O$=$N(B encoding $B$,2?$r0U?^$7$F$$$k$N$+Fq$7$$$N$G!#(B > |$B$^$D$b$H$5$s$N6D$k;EMM$J$i$P0l4S@-$,$"$k$N$G$h$$$H;W$&$N$G$9$,!"(B > |$B8=9T$N;EMM$G$O(B compatible $B$J;~$K(B enc $B$rJV$90J>e!"(B > |false $B$H(B nil $B$G6hJL$H$$$&J}K!$,;H$$$E$i$$$N$,%M%C%/$G$7$g$&$+!#(B > |enc / false / nil $B$G$b$$$$$N$+$J$!!&!&!&!#(B > > $B$d$C$Q$j(B enc / false / nil $B$O$*$+$7$$5$$,$7$^$9$M!#$&!<$s!#(B > true / false / nil $B$K$7$F!":G>/8xG\?t$J%(%s%3!<%G%#%s%0$r5a(B > $B$a$k%a%=%C%I$OJL$K;}$D$H$+(B...$B!#(B Encoding.compatible? $B$O(B enc / nil $B$K$7$F!"(B C $B%l%Y%k$G8@$&(B enc_capable $BE*$J$b$N$rMQ0U$9$k$N$b$"$j$+$b!"$H$+$O!#(B $B$3$N>l9g(B obj#encoding $B$NM-L5$GH=CG$H$+$K$J$k$s$G$7$g$&$,!"(B $B0lJ}$G(B IO#encoding $B$O$J$+$C$?$j$9$k$o$1$G$9!#(B > |r18920 $B$N0U?^$O(B Encoding.compatible? $B$,BP1~$7$F$$$k%*%V%8%'%/%H$H!"(B > |$BBP1~$7$F$$$J$$%*%V%8%'%/%H$r$O$C$-$j$o$1$k$3$H$@$C$?$N$G!"(B > |$BNc30$r=P$9$3$H$K$3$@$o$j$O$J$$$N$G$9$,!&!&!&!#(B > > Encoding.compatible?$B$,$J$K$r$H$k$+$rL@3N$K$9$kI,MW$,$"$k$H;W(B > $B$$$^$9!#(B > > $B$?$H$($P>-Mh(BIO$B$H$+(BStringIO$B$H$+!VJ8;zNs$N$h$&$K?6$kIq$&$J$K$+!W(B > $B$r0z?t$K$H$k$h$&$J2DG=@-$r9M$($k$H!":#$N$h$&$J%A%'%C%/(B($BJ8;zNs(B > $B$+@55,I=8=$N$_(B)$B$O$"$^$jNI$/$J$$$h$&$J5$$,$7$^$9!#(B IO $B7O$N$3$H$O9M$($?$s$G$9$,!":#$N(B Encoding.compatible? $B$H$O(B $B$=$0$o$J$$$h$&$K46$8$^$7$?!#(B $B$=$b$=$b!"(BIO $B$OF~NO$H=PNO$GOC$,0c$&$o$1$G!"(B $B$?$H$($P!"!V(BUS-ASCII $B$N(B IO $B=PNO!W$H!V(BUTF-8 $B$NJ8;zNs!W$O!_$G$9!#(B $B$7$+$7!"!V(BUS-ASCII $B$N(B IO $BF~NO!W$H!V(BUTF-8 $B$NJ8;zNs!W$O!{$G!"(B encoding $B$rJV$9$J$i$P(B UTF-8 $B$G$7$g$&!#(B $B$^$?!"(BEncoding.compatible? $B$OCf?H$N(B ASCII ONLY $B$^$G8+$k$o$1$G$9$,!"(B $B$3$l$r(B IO $B$KE,MQ$9$k$3$H$O:$Fq$G$9!#(B $B$D$^$j!"(BIO $B$r2>$K0z?t$H$9$k>l9g!"(B $B$=$N(B encoding $B$r;}$A(B CODERANGE_VALID $B$J(B string $B$H$_$J$9!"(B $B$H$$$&$3$H$K$J$k$+$H;W$&$N$G$9$,!"2L$?$7$F$3$l$,!"(B Encoding.compatible?(io, str) $B$H=q$$$?>l9g$N4|BTDL$j$+$H$$$&$H!"(B $B$J$+$J$+$"$d$7$$=j$J$s$8$c$J$$$+$J$!$H!#(B encoding $B$N>l9g$bF1MM$G!"$=$N(B encoding $B$,$I$3$N(B encoding $B$+$K$h$C$F!"(B "compatible" $B$N0UL#$,JQ$o$C$F$-$^$9!#(B $B0lJ}$G!"(Bregexp $B$K4X$7$F$OJ8;zNs$HMm$`ItJ,$,%^%C%A$N$_$J$N$G!"(B $B$b$&0lJ}$N$J$K$+$N(B encoding $B$rJ8;zNs$N(B encoding $B$H$_$J$7!"(B $BEv3:(B regexp $B$N%^%C%A2DG=$+$GH=CG$9$k$H$$$&$3$H$G7h$a$i$l$^$7$?!#(B $B$H$$$&6q9g$KOC$O$J$+$J$+Fq$7$$$o$1$G$9!#(B
on 15.09.2008 19:49
$B@.@%$G$9!#(B r19357 $B$G0J2<$NDL$jJQ99$7$^$7$?$,!"$$$+$,$G$7$g$&$+!#(B * $B$I$A$i$+$,(B encoding $B$r;}$?$J$$(B -> nil # encoding $B$r;}$D$+$I$&$+$NH=CG$O3F<+(B encoding $B%a%=%C%I$NM-L5Ey$GH=CG$7$F$[$7$$(B * compatible $B$G$J$$(B -> nil * compatible $B$J>l9g(B -> String $B$H(B Regexp $B$O8=>uDL$j(B -> Encoding $B$rDI2C!"F0:n$O(B Regexp $B$HF1MM(B -> IO $B$rDI2C!"(Binternal_encoding $B$+!"(Bnil $B$J$i$P(B external_encoding $B$r8+$FH=CG(B $B;29M(B: [ruby-core:18595] $B<BAu$7$F$$$F;W$C$?$N$G$9$,!"(B IO#encoding: internal_encoding $B$,(B Encoding $B$rJV$;$P$=$l$r!"(B nil $B$@$C$?$i(B external_encoding $B$rJV$9!#(B $B$H$$$&$N$,$"$C$F$bNI$5$=$&$J5$$,$7$^$9$M(B