[Ruby 1.9-Feature#4280][Assigned] SJIS should be an alias of Windows-31J, not of Shift_JIS

Feature #4280: SJIS should be an alias of Windows-31J, not of Shift_JIS
http://redmine.ruby-lang.org/issues/show/4280

起票者: Usaku NAKAMURA
ステータス: Assigned, 優先度: Low
担当者: Yui NARUSE, Target version: 1.9.x

Rubyのencodingとして「SJIS」を指定する時、指定している人はShift_JISとWindows-31Jの違いを意識してる可能性は低いように思います。
だとすると、1.8までの$KCODE="sjis"がWindows-31Jに対応させられていることから考えて、SJISはShift_JISではなくWindows-31Jのaliasであるべきではないでしょうか?

チケット #4280 が更新されました。 (by Motohiro KOSAKI)

FYI:

Javaでは SJIS==Shift_JIS ですね。以下でJavaの歴史的経緯が説明されているようです。

http://www.ingrid.org/java/i18n/encoding/shift_jis.html

$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

In message “[ruby-dev:43030] [Ruby 1.9-Feature#4280] SJIS should be an
alias of Windows-31J, not of Shift_JIS”
on Jan.14,2011 16:05:56, [email protected] wrote:

Java$B$G$O(B SJIS==Shift_JIS
$B$G$9$M!#0J2<$G(BJava$B$NNr;KE*7P0^$,@bL@$5$l$F$$$k$h$&$G$9!#(B

ingrid.org

$B2f!9$OH`$i$N<:GT$rF’$^$($F$$$k$N$G!“(BShift_JIS$B$H(BWindows-31J$B$,(B
$B$4$C$A$c$K$J$C$?$j$O$7$F$$$^$;$s(B($B$($C$X$s(B)$B!#(B
$B$h$C$F!”(BIANA charset$B$K$“$k$h$&$JL>A0$r$=$l$H0[$J$k0UL#$K$7$?(B
$B$$$H$$$&H/A[$O$”$j$^$;$s!#(B

$B$G!“!V(BSJIS$B!W$H$$$&L>A0$KBP$7$F$OFC$K8xE*$JDj5A$,B8:_$7$J$$>u(B
$B67$N$O$:$G$9(B($B2?$+$”$C$?$i65$($F$/$@$5$$(B)$B!#(B
$B$J$N$G!“$=$N0UL#$O47MQ$G7h$^$C$F$$$k$N$@$H;W$$$^$9$,!”(BRuby$B3&(B
$B7($K$$$$F$O!V(B$KCODE$B$K;XDj$9$k$b$N!W$H$$$&$N$,:G$b0lHLE$J8=(B
$B$lJ}$J$N$G$O$J$$$+$H;W$&$o$1$G$9!#(B
$B$G$“$l$P!”$=$l$K9g$o$;$k$Y$-$G$O$J$$$G$7$g$&$+!#(B

$B$5$F!“(BJava$B$G$O$J$<(BSJIS==Shift_JIS$B$J$s$G$7$g$&$+!#(B
Java$B$N!V(BShift_JIS$B$K$^$D$o$k!WNr;KE7P0^$O>.:j$5$s$K<($7$F$$$?(B
$B$@$$$?J8=q$K$"$k$H$
$j$@$H;W$$$^$9$,!”!V(BSJIS$B$K$D$$$F$O!WFC$K(B
$B$J$s$N@bL@$bL5$/(BShift_JIS$B$HF1$8$H$7$F07$o$l$F$^$9$h$M(B?

$B$=$l$G$O!#(B

チケット #4280 が更新されました。 (by Yui NARUSE)

まだ考え中ですが、今のところ特に反対要素はありません。

まず、現状 SJIS = Shift_JIS なのは、Java にあわせたものです。

しかし、Java の経緯は、
1.1: SJIS == Shift_JIS
1.2: SJIS, Shift_JIS == MS932
1.4.1: SJIS == Shift_JIS, MS932
なのであんまり参考になりません。

IANA Charsets にも SJIS の規定はないので、これも問題ありませんな。

2011$BG/(B1$B7n(B14$BF|(B16:35 U.Nakamura [email protected]:

$B$h$C$F!“(BIANA charset$B$K$”$k$h$&$JL>A0$r$=$l$H0[$J$k0UL#$K$7$?(B
$B$5$F!“(BJava$B$G$O$J$<(BSJIS==Shift_JIS$B$J$s$G$7$g$&$+!#(B
Java$B$N!V(BShift_JIS$B$K$^$D$o$k!WNr;KE7P0^$O>.:j$5$s$K<($7$F$$$?(B
$B$@$$$?J8=q$K$"$k$H$
$j$@$H;W$$$^$9$,!”!V(BSJIS$B$K$D$$$F$O!WFC$K(B
$B$J$s$N@bL@$bL5$/(BShift_JIS$B$HF1$8$H$7$F07$o$l$F$^$9$h$M(B?

$B<B$OA4A3;W$$=P$;$J$$$s$G$9$,!“(BSJIS$B$O(BUnix
locale$B$G$NL>A0$G$O$J$+$C$?$G$9$+$M!#(B
$B8D?ME*$K$O(BSJIS$B$OE}0l8+2r$,$J$$$+$i;H$&$J$H$+8@$$$?$$$s$G$9$,$=$&$b$$$+$J$$(B
$B$s$G$7$g$&$M!#(B
$BNr;KE*7P0^$r4^$`J8;z%3!<%I$O2?$,$d$C$+$$$+$H$$$&$H!“8@8l$NJ8;z%3!<%I$N5,Dj$H(B
$B$h$j2<0L%l%$%d!<$N%=%U%H!J%G!<%?%Y!<%9%=%U%H$H$+!K$G$NJ8;z%3!<%I$N5,Dj$KIT0lCW$,(B
$B$”$C$?$H$-$K:$$k$o$1$G!”(BRuby$B$NET9g$@$1$G7h$a$F$$$$$s$@$m$&$+$H$$$&$b$d$b$d46$H!"(B
$B%$%^%I%-(BSJIS$B$OM}2r$9$k$1$I(BShift_JIS,
CP932$B$rM}2r$7$J$$%G!<%?%Y!<%9$J$s$F@8$-(B
$B;D$C$F$$$k$N$@$m$&$+$H$$$&GyA3$H$7$?5?Ld$,F,$NCf$G2s$C$F$$$?$j$7$^$9!#(B

$B$I$&$J$s$G$7$g$&$M$'!#$b$&$A$g$C$H9M$($^$9(B

$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

In message “[ruby-dev:43033] Re: [Ruby 1.9-Feature#4280] SJIS should be
an alias of Windows-31J, not of Shift_JIS”
on Jan.14,2011 17:10:00, [email protected] wrote:

$B<B$OA4A3;W$$=P$;$J$$$s$G$9$,!"(BSJIS$B$O(BUnix
locale$B$G$NL>A0$G$O$J$+$C$?$G$9$+$M!#(B

$B8D?ME*$K$O(BSJIS$B$OE}0l8+2r$,$J$$$+$i;H$&$J$H$+8@$$$?$$$s$G$9$,$=$&$b$$$+$J$$(B

$B$s$G$7$g$&$M!#(B
$BNr;KE*7P0^$r4^$`J8;z%3!<%I$O2?$,$d$C$+$$$+$H$$$&$H!"8@8l$NJ8;z%3!<%I$N5,Dj$H(B

$B$h$j2<0L%l%$%d!<$N%=%U%H!J%G!<%?%Y!<%9%=%U%H$H$+!K$G$NJ8;z%3!<%I$N5,Dj$KIT0lCW$,(B

$B$“$C$?$H$-$K:$$k$o$1$G!”(BRuby$B$NET9g$@$1$G7h$a$F$$$$$s$@$m$&$+$H$$$&$b$d$b$d46$H!"(B

$B%$%^%I%-(BSJIS$B$OM}2r$9$k$1$I(BShift_JIS,
CP932$B$rM}2r$7$J$$%G!<%?%Y!<%9$J$s$F@8$-(B
$B;D$C$F$$$k$N$@$m$&$+$H$$$&GyA3$H$7$?5?Ld$,F,$NCf$G2s$C$F$$$?$j$7$^$9!#(B

$B$I$&$J$s$G$7$g$&$M$'!#$b$&$A$g$C$H9M$($^$9(B

$B??LLL$J%W%m%0%i%`$O(BSJIS$B$H$+$$$&$I$&9M$($F$b%d%P$$L>A0$O;H$o(B
$B$J$$$H;W$&$s$G$9$h$M!#(B
$B%G!<%?%Y!<%9%“%/%;%9$9$k$N$K(BSJIS$B$H$+=q$/?M$O;W$&B8J,$O$^$l$P(B
$B$$$$$H;W$&$N$G!”$^$"$$$$$s$8$c$J$$$G$7$g$&$+!#(B

$B$J$s$G$9$,!“(BUnix locale$B$H$+=P$F$/$k$H$A$g$C$H$^$:$$$+$b$H$$$&(B
$B5$$O$7$^$9!#(B
$B$J$s$+%G%U%)%k%H$NF|K\8l(Blocale$B$,(BSJIS$B$J(BUnix$B$,$”$C$?$h$&$J5$$,(B
$B$9$k$s$G$9$,!“$J$s$@$C$?$+$7$i!#(BAIX$B$”$?$j(B?
$B$=$7$F$=$$$D$N(Blocale$BL>$O2?$G$=$N<BBN$O$J$s$@$C$?$N$+$7$i(B…

$B$=$l$G$O!#(B

2011$BG/(B1$B7n(B14$BF|(B17:29 U.Nakamura [email protected]:

$B%$%^%I%-(BSJIS$B$OM}2r$9$k$1$I(BShift_JIS,
CP932$B$rM}2r$7$J$$%G!<%?%Y!<%9$J$s$F@8$-(B
$B$J$s$G$9$,!“(BUnix locale$B$H$+=P$F$/$k$H$A$g$C$H$^$:$$$+$b$H$$$&(B
$B5$$O$7$^$9!#(B
$B$J$s$+%G%U%)%k%H$NF|K\8l(Blocale$B$,(BSJIS$B$J(BUnix$B$,$”$C$?$h$&$J5$$,(B
$B$9$k$s$G$9$,!“$J$s$@$C$?$+$7$i!#(BAIX$B$”$?$j(B?
$B$=$7$F$=$$$D$N(Blocale$BL>$O2?$G$=$N<BBN$O$J$s$@$C$?$N$+$7$i(B…

http://home.m05.itscom.net/numa/cde/sjis-euc/sjis.html
Unix$B$@$HNc$($P$3$s$J!#(B

$B$7$+$7!"(BUnicode$B$H$NBP1~$,$I$s$J$b$s$+$O$^$?$h$/$o$+$i$s$9$J!#(B

$B$5$H$&$U$_$d$9(B @ OSSTech $B$G$9!#(B

At Fri, 14 Jan 2011 17:29:53 +0900,
U.Nakamura wrote:

$B$J$s$G$9$,!"(BUnix locale$B$H$+=P$F$/$k$H$A$g$C$H$^$:$$$+$b$H$$$&(B
$B5$$O$7$^$9!#(B
$B$J$s$+%G%U%)%k%H$NF|K\8l(Blocale$B$,(BSJIS$B$J(BUnix$B$,$"$C$?$h$&$J5$$,(B
$B$9$k$s$G$9$,!"$J$s$@$C$?$+$7$i!#(BAIX$B$"$?$j(B?
$B$=$7$F$=$$$D$N(Blocale$BL>$O2?$G$=$N<BBN$O$J$s$@$C$?$N$+$7$i(B…

AIX $B$NF|K\8l$N4{Dj(B locale $B$NL>A0$O(B Ja_JP $B$G(B Shift_JIS
$B$G$b(B
CP932 $B$G$b(B CP943 $B$G$b$J$$(B Shift_JIS $B$N0!<o$i$7$$$G$9!#(B
$B$[$+$K(B Ja_JP.IBM-943$B!"(Bja_JP.IBM-932 $B$H$+$,$"$j$^$9!#(B
ja_JP.SJIS $B$O$"$j$^$;$s(B($B$H5-21$7$F$$$k(B)$B!#(B

Solaris $B$N(B Windows $BF1Ey$N(B locale $BL>$O(B ja_JP.PCK $B$G$9!#(B
ja_JP.SJIS $B$O$"$j$^$;$s!#(B

$BF|N)$N(B HI-UX (HP-UX $B$N0!<o(B) $B$K(B ja_JP.SJIS $B$H$$$&(B locale
$B$,(B
$B$"$j$^$9$,!"$3$l$,(B Shift_JIS $B$+0!<o(B (CP932?)
$B$G$"$k$+$O3P$($F$$$J$$!D!#(B
HP-UX $B$K$b(B ja_JP.SJIS $B$O$"$C$?$+$J$!(B?

$B??LLL$J%W%m%0%i%`$O(BSJIS$B$H$+$$$&$I$&9M$($F$b%d%P$$L>A0$O;H$o(B
$B$J$$$H;W$&$s$G$9$h$M!#(B
$B%G!<%?%Y!<%9%“%/%;%9$9$k$N$K(BSJIS$B$H$+=q$/?M$O;W$&B8J,$O$^$l$P(B
$B$$$$$H;W$&$N$G!”$^$"$$$$$s$8$c$J$$$G$7$g$&$+!#(B

$B$J$s$G$9$,!“(BUnix locale$B$H$+=P$F$/$k$H$A$g$C$H$^$:$$$+$b$H$$$&(B
$B5$$O$7$^$9!#(B
$B$J$s$+%G%U%)%k%H$NF|K\8l(Blocale$B$,(BSJIS$B$J(BUnix$B$,$”$C$?$h$&$J5$$,(B
$B$9$k$s$G$9$,!“$J$s$@$C$?$+$7$i!#(BAIX$B$”$?$j(B?
$B$=$7$F$=$$$D$N(Blocale$BL>$O2?$G$=$N<BBN$O$J$s$@$C$?$N$+$7$i(B…

$B%m%1!<%kL>$O$o$+$j$^$;$s$G$7$?$,!"(B

https://www-304.ibm.com/support/docview.wss?uid=std383ebe99c4d8d16e7492574d600087fe7
http://publibn.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixbman/codebook/jp_codebook.pdf

$B$r8+$k$H<BBN$O(BIBM943$B$_$?$$$G$9!#(B

(2011/01/14 19:04), SATOH Fumiyasu wrote:

$B$[$+$K(B Ja_JP.IBM-943$B!“(Bja_JP.IBM-932 $B$H$+$,$”$j$^$9!#(B
ja_JP.SJIS $B$O$"$j$^$;$s(B($B$H5-21$7$F$$$k(B)$B!#(B

AIX $B$G$O!V(BAIX 5L $BF|K\8l%3!<%I0lMwI=(B(SC88-0427) $B!W$rFI$`$K!"(B

$B$7$+$7!“0J2<$N$h$&$JOC$b$”$j!“:.Mp$b$”$kLOMM!#(B
http://www-01.ibm.com/support/docview.wss?uid=std3c2d180a83715c3a149256ec400280bf4
http://www.hi-matic.org/diary/?20090514

Solaris $B$N(B Windows $BF1Ey$N(B locale $BL>$O(B ja_JP.PCK $B$G$9!#(B
ja_JP.SJIS $B$O$"$j$^$;$s!#(B

$B$=$&$$$($P(B PCK $B$O(B nkf $B$G%5%]!<%H4uK>Mh$^$7$?$J!#(B
ruby $B$G$b(B alias $BDI2C$9$k$+!"(Breplica $B$K$9$k$+!#(B

$B$G!“$3$$$D$O2?<T$+$H$$$&$H!”(B

PC $B4A;z%3!<%I(B
PC $B4A;z%3!<%I(B ($B0J9_!“(BPCK $B$H$7$^$9(B) $B$O!“0lHL$K!V%7%U%H(B
JIS ($B$”$k$$$O(B MS $B4A;z(B) $B%3!<%I!W$H8F$P$l!”(B
Microsoft $B$,(B Windows 3.1
$B$G5,Dj$7$?%^%$%/%m%=%U%HI8=`%-%c%i%/%?%;%C%H$HF1Ey$NJ8;z=89g$*$h$S(B
$B%(%s%3!<%G%#%s%0$rDs6!$9$k$b$N$G$9!#(Bja_JP.PCK
$B%m%1!<%k$GF|K\8l$rI=8=$9$kJ8;z%3!<%IBN7O$H$7$F(B
$B;H$o$l$F$$$^$9!#(BPCK $B$K4X$9$k>:Y$O!“(BPCK(5)
$B%^%K%e%”%k%Z!<%8$r;2>H$7$F$/$@$5$$!#!W(B
http://download.oracle.com/docs/cd/E19253-01/819-0364/japan.utility-10006/index.html

$B$H$“$j!“8e$m$KIU$$$F$kJQ495,B’$b8+$k$H!”(B
$B!V(BPC $B4A;z%3!<%I$H(B UTF-8
$B$NJQ49$O!“FbIt$G0lC6JQ4985$N%3!<%I%;%C%H$+$iF|K\8l(B EUC
$B$KJQ49$7!”(B
$B!!$=$3$+$iL\E*$N%3!<%I%;%C%H$XJQ49$7$^$9!#!W(B
$B$H$”$k!#(B

$B$8$c$“!”(BPCK $B$H(B $BF|K\8l(B EUC $B$NJQ49$O$H8+$k$H!“(B
$BF|K\8l(B EUC $B$H(B PCK $B$NJ8;z%3!<%IJQ495,B’$O!X(BTOG
$BF|K%Y%s%@6(5D2q!Y$NF|K\8l(B EUC$B!&%7%U%H(B JIS
$B%3!<%IJQ49;EMM!Y$K4p$E$$$F$$$^$9!#!W(B
$B$H$”$k$N$G!"$3$l$G$9$M!#(B
http://home.m05.itscom.net/numa/cde/sjis-euc/sjis-euc.html

$B$G!“$3$NF|K\8l(B EUC $B$H(B Unicode
$B$NJQ495,B’$O2?$+$H$$$&$H!”$I$&$b(B eucJP-ascii $B$J$h$&$G$9$M!#(B
$B!V(BJIS X 0221 $B<0$NJQ49(B (ASCII $B$HJ;MQ$9$k>l9g(B)$B!W(B
http://home.m05.itscom.net/numa/cde/ucs-conv/appendix.html

http://download.oracle.com/docs/cd/E19253-01/819-0606/x-2chn0/index.html
http://download.oracle.com/docs/cd/E19253-01/819-0606/appb-pckwarn-1/index.html

$BF|N)$N(B HI-UX (HP-UX $B$N0!<o(B) $B$K(B ja_JP.SJIS $B$H$$$&(B locale $B$,(B
$B$“$j$^$9$,!”$3$l$,(B Shift_JIS $B$+0!<o(B (CP932?)
$B$G$“$k$+$O3P$($F$$$J$$!D!#(B
HP-UX $B$K$b(B ja_JP.SJIS $B$O$”$C$?$+$J$!(B?

HP-UX $B$O(B SJIS/SJISMS $B$GJ,$1$F$$$k$h$&$K8+$($^$9$M!#(B
http://docs.hp.com/ja/5991-1165/ch02s06.html

$BAm$8$F8+$k$H!"!V$3$3$G!$(BSJIS$B$H$O(BMicrosoft $B$,(B Windows 3.1
$B$G5,Dj$7$?(B
$B!!!V%^%$%/%m%=%U%HI8=`(B
$B%-%c%i%/%?%;%C%H!W$N$3$H$H$9$k!%!W$C$F46$8$_$?$$$G$9$J!#(B
http://home.m05.itscom.net/numa/cde/sjis-euc/sjis-euc.html

$B$?$@!“JQ49I=$O$I$&$+$H$$$&$H!”(BeucJP-ascii $B7PM3$C$]$$J70O5$$b!#(B

$B$"$C$?$H$-$K:$$k$o$1$G!"(BRuby$B$NET9g$@$1$G7h$a$F$$$$$s$@$m$&$+$H$$$&$b$d$b$d46$H!"(B

$B%$%^%I%-(BSJIS$B$OM}2r$9$k$1$I(BShift_JIS,
CP932$B$rM}2r$7$J$$%G!<%?%Y!<%9$J$s$F@8$-(B
$B;D$C$F$$$k$N$@$m$&$+$H$$$&GyA3$H$7$?5?Ld$,F,$NCf$G2s$C$F$$$?$j$7$^$9!#(B

$B$I$&$J$s$G$7$g$&$M$’!#$b$&$A$g$C$H9M$($^$9(B

$B$G!“9M$($F$_$?$N$G$9$,!”%H%i%V%k$,=P$=$&$J6qBNE*$J%1!<%9$,#1$D$b(B
$B;W$$$D$-$^$7$?!#$J$N$G$=$&$$$&MW5a$,$"$k$J$iH?BP$9$kM}M3$O$"$j$^$;$s!#(B

$B#1E@5$$K$J$k$N$OHs8_49$J$s$G$9$,!"!V$.$c$C!W$H@<$,$9$k$+$I$&$+$G3NG’$9$k(B
$B:n@o$@$H$$$&M}2r$G$$$$$N$G$7$g$&$+!)(B

$B$G!“9M$($F$_$?$N$G$9$,!”%H%i%V%k$,=P$=$&$J6qBNE*$J%1!<%9$,#1$D$b(B
$B;W$$$D$-$^$7$?!#$J$N$G$=$&$$$&MW5a$,$"$k$J$iH?BP$9$kM}M3$O$"$j$^$;$s!#(B

$B;W$$$D$-$^$;$s$G$7$?!#(B

$B%"%[$+!#$*$l$O(B

$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

In message “[ruby-dev:43056] Re: [Ruby 1.9-Feature#4280] SJIS should be
an alias of Windows-31J, not of Shift_JIS”
on Jan.17,2011 20:01:21, [email protected] wrote:

$B#1E@5$$K$J$k$N$OHs8_49$J$s$G$9$,!"!V$.$c$C!W$H@<$,$9$k$+$I$&$+$G3NG’$9$k(B
$B:n@o$@$H$$$&M}2r$G$$$$$N$G$7$g$&$+!)(B

$B<+J,$G(BSJIS$B$r;XDj$7$F$k?M$O!":G=i$+$i=q$$$F$k$h$&$K!“C1$K$&$+(B
$B$D$J?M$J$N$G>!<j$K6+$Y!”$H$$$&46$8$G$9!#(B

$B$G!“<+J,$G$=$&=q$$$F$J$$$N$K(BSJIS$B$H$7$F<h$j07$o$l$F$k?M$J$s$F(B
$B$$$k$o$1$J$$$h$M!<$O$O$O!”$H;W$C$F$$$?$o$1$J$s$G$9$,!"(BUnix$B$N(B
locale$B$,(B*.SJIS$B$N>l9g$N$_$=$&$$$&$3$H$,5/$-$k$H$$$&$3$H$K>.:j(B
$B$5$s$N;XE&$G5$IU$$$?$N$G3NG’$7$F$?$H$$$&46$8$G$9!#(B

$B$G$-$l$P!V$.$c$C!W$H6+$P$;$kA0$K3NG’$7$?$$$o$1$G$9$,!"8=<BLd(B
$BBj$H$7$F$O(BWindows$B$H8_49$G$J$$A0Ds$G(BSJIS$B$H$$$&(Blocale$B$r$o$6$o$6(B
$B;H$C$F$k4qFC$J?M$J$s$F$[$H$s$I$$$J$$$HA[A|$G$-$k$N$G!“8+@Z$j(B
$B$r$D$1$F$d$C$F$_$F$O$I$&$+!”$H$$$&5$J,$K79$$$F$O$$$^$9!#(B

$B$$$:$l$K$;$h!“(BRuby M17N$B$N8"0R!”@.@%$5$s$,$I$&H=CG$9$k$+!"$J$N(B
$B$G$9$,!#(B

$B$=$l$G$O!#(B