[email protected]@%$G$9!#e(B
KIMURA Koichi wrote:
Windowse$BHG$Ne(BRuby1.9e$B$G$N%G%U%)%k%H%(%s%3!<%G%#%s%0$N$H$-$K$A$g$C$HL>A0$,e(B
e$B$G$F$$$F5$$K$J$C$F$$$?$N$G$9$,!"%l%W%j%+e(B(replica) e$B$He(B e$B%(%$%j%"%9e(B (alias)
e$B$N0c$$$C$F$J$s$G$7$g$&$+e(B?
e$B%l%W%j%+e(B e$B"*e(B e$B<BBN$r%3%T!<$9$k$7$F$=$N%3%T!<$KL>A0$r$D$1$ke(B
e$B%(%$%j%"%9e(B e$B"*e(B e$B<BBN$r6&M-$7$?>e$GL>A0$r$D$1$ke(B
e$B$+$J$"$H;W$C$?$N$G$9$,!"<B:]$N%3!<%I$r8+$F$b<+?.$,[email protected]$re(B
[email protected]$1$k$H$"$j$,$?$$$G$9!#$3$3$r8+$m$H$$$&%]%$%s%?;X<($G$be(B
e$B$+$^$$$^$;$se(B(e$B1Q8l$G$+$+$l$F$$$F$b2D$G$9e(B)e$B!#e(B
e$B$o$?$7$NH/[email protected]$G$9$H!“e(B[ruby-dev:32542] [ruby-dev:32885]
e$B$”$?$j$,$^$H$^$C$Fe(B
e$B$$$^$9!#$3$NMQES$Ge(B replica e$B$rMQ$$$h$&$H$$$&$N$Oe(B
[ruby-dev:32460] e$B$,=i$ae(B
e$B$G$7$g$&$+!#e(B
e$BC<E*$K$$$($P!"e(B
replica : e$B!Ve(Bencodinge$B!W$rDj5A$9$ke(B
alias : e$B!Ve(Bencoding e$BL>e(Be$B!W$rDj5A$9$ke(B
e$B$H$$$&$3$H$K$J$j$^$9!#e(B
e$B?^$K$9$k$H$?$V$s0J2<$N$h$&$J46$8$G$9!#e(B
e$B54<Ve(B(CES)
OnigEncodingSJIS
e$B(""+(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!($e(B
e$B(!(!(!(+(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(+(!(!(!(!(!(!(!(!(!(!(!(!(!(!e(B
e$B("e(B e$B("e(B Encoding
(e$BJ8;z=89ge(B+CES)
e$B("e(B e$B(“e(B
#Encoding:Shift_JIS e$B(!e(B(replica)e$B”*e(B #Encoding:Windows-31J
e$B("e(B e$B("e(B e$B("e(B
e$B("e(B
e$B(!(!(!(+(!(!(!(!(!(+(!(!(!(!(!(!(!(!(!(!(!(+(!(!(!(!(!(+(!(!(!(!(!(!(!(!e(B
e$B("e(B (alias) e$B("e(B
e$B("e(B Encodinge$BL>e(B
e$B(“e(B e$B”-e(B e$B("e(B
e$B("e(B (charsete$BL>e(B)
“Shift_JIS” “SJIS” “Windows-31J” “CP932”
e$B54<VAX$He([email protected]$G$O$J$$$N$G$9$,JX59>e$3$&$7$F$*$-$^$9!#e(B
Encoding e$BAXe(B e$B$G$Ne(B #Encoding:Shift_JIS e$B$N<BBNe(B
rb_encoding* e$B$OF1$8$b$Ne(B
e$B54<VAX$G$OJ8;zC10L$NA`:n$r9T$C$F$$$^$9!#6qBNE*$K$Oe(B str[n]
e$B$,2?$rJV$9$+!"e(B
str.length e$B$O$I$N$/$i$$$+!#$^$?e(B String#valid_encoding? e$B$Ne(B
true/false e$BH=e(B
e$BDj$b$3$N%l%Y%k$G$9!#54<VAX$N<BBN$O!"J8;z$N:G>.%P%$%H?t$H:GBg%P%$%H?t$N;Xe(B
e$BDj$d!"J8;zNs$ND9$5$r;;=P$9$k4X?t!"BgJ8;z$r>.J8;z$KJQ49$9$k4X?tEy$r$R$H$^e(B
e$B$H$a$K$7$?9=B$BNe(B OnigEncodingType e$B$G!“6qBNE*$K$Oe(B
ONIG_ENCODING_ASCII e$B$de(B
ONIG_ENCODING_SJIS e$BEy$,$”$j$^$9!#e(B
Encoding
e$BAX$G$OJ8;zNsA:nA4HL$r;J$j$^$9!#6qBNE*$K$OJ8;zNs$N7k9g2DG=!&Hfe(B e$B3S2DG=!"@55,I=8=$N%^%C%A2DG=H=Dj$,$3$NAX$G9T$o$l$F$$$^$9!#$3$NAX$G$N<BBNe(B e$B$Oe(B rb_encoding e$B$G$9!#e(BEncoding e$BAX$K$*$1$k<BBN$Oe(B e$B54<V$,e(B native e$B$KBP1~$7$Fe(B e$B$$$ke(B encoding e$B$+$iD>7k$7$F$$$ke(B original encodinge$B!"e(Boriginal encoding e$B$+$ie(B replicate e$B$5$l$?e(B replica encodinge$B!"54<V$,BP1~$7$F$$$J$$e(B encoding e$B$KJX59e(B e$BE*$KM?$($i$l$ke(B dummy encoding e$B$Ne(B3e$B<oN
$KJ,$1$k$3$H$,$G$-$^$9!#$3$l$i$r8+e(B
e$BJ,$1$k$K$Oe(B Encoding#base_encoding e$B$de(B Encoding#dummy?
e$B$r8+$k$o$1$G$9$,!“e(B
e$B8+$?$+$i$I$&$H$$$&$3$H$G$b$”$j$^$;$s!#e(B
e$B$3$l$i$N6hJL$rD61[$9$kB8:$,e(B 7bit e$B$N$[email protected]$5$l$?J8;zNs$G!"e(B
String#ascii_only? e$B$GH=Dj2DG=$G$9!#$3$l$,??$K$J$kJ8;zNs$O$$$+$J$ke(B
encoding e$B$NJ8;zNs$H$b7k9g!&Hf3S2DG=$H$J$j$^$9!#e(B
e$B$J$*!"e(Brb_encoding e$B$Oe(B OnigEncodingType
e$B$NF1$8$b$N$N$?$a!"e(BEncoding e$BAX$G$Ne(B
replica e$B$G$b!"54<V%l%Y%k$N=t4X?t!"Nc$($PJ8;z72$Ke(B Unicode Property
Name
e$B$rM?$($?$j!"e(Bvalid
e$B$J%P%$%HNs$NHO0O$rDj5A$7D>$9$3$H$,2DG=$G$9!#!Je(B[ruby-
dev:32947]
e$B$G$N!V%l%W%j%+$O%3%T!<$r$7$?8e$G4X?t$N$$$/$D$+$r>e=q$-$9$k$3e(B
e$B$H$b2DG=!W$H$O$?$V$s$3$N$3$H!Ke(B
Encodinge$BL>AX$O!"e(BEncoding.find() e$B$9$k$?$a$N%F!<%V%k$G$9!#e(B
ENC_TABLE = {
‘Shift_JIS’ => Encoding::Shift_JIS,
‘Windows-31J’ => Encoding::Windows_31J,
‘EUC-JP’ => Encoding::EUC_JP
}
ENC_TABLE_ALIAS = {
‘SJIS’ => Encoding::Shift_JIS,
‘CP932’ => Encoding::Windows_31J,
‘EUCJP’ => Encoding::EUC_JP
}
def rb_enc_alias(alias, orig)
ENC_TABLE_ALIAS[alias] = orig
end
def Encoding.find(name)
return ENC_TABLE[name] if ENC_TABLE[encname]
return ENC_TABLE_ALIAS[name] if ENC_TABLE_ALIAS[encname]
return -1
end
e$B$H$$$&9=B$$K$J$C$F$$$k$H$*9M$($/[email protected]$5$$!#e(Balias
e$B$GDI2C$5$l$?L>A0$O!"J8;zNse(B
e$B$+$ie(B rb_encoding e$B$r8!:w$9$k:]$K$N$_$KMQ$$$i$l$^$9!#e(B
e$B$=$N$?$a!"e(B[ruby-dev:32949] e$B$K$*$1$k!Ve(Balias
e$B$KBP$7$F4X?t$r>e=q$-!W$H$$e(B
e$B$&2>Dj$OB8:_$7$^$;$se(B
e$B$3$l$O$o$?$7$NM}2r$J$N$G4V0c$C$F$$$k$H$3$m$O%D%C%3%_$/[email protected]$5$$e(B
e$B$3$T$Z$7$d$9$$$h$&$K$3$N%a!<%k$NCx:n8"$OJ|4~$7$F$*$-$^$9!#e(B