From: "NARUSE, Yui" Date: 2011-01-16T06:19:18+09:00 Subject: [ruby-dev:43045] Re: [Ruby 1.9-Feature#4280] SJIS should be an alias of Windows-31J, not of Shift_JIS (2011/01/14 19:04), SATOH Fumiyasu wrote: > At Fri, 14 Jan 2011 17:29:53 +0900, > U.Nakamura wrote: >> なんですが、Unix localeとか出てくるとちょっとまずいかもという >> 気はします。 >> なんかデフォルトの日本語localeがSJISなUnixがあったような気が >> するんですが、なんだったかしら。AIXあたり? >> そしてそいつのlocale名は何でその実体はなんだったのかしら... > > AIX の日本語の既定 locale の名前は Ja_JP で Shift_JIS でも > CP932 でも CP943 でもない Shift_JIS の亜種らしいです。 > ほかに Ja_JP.IBM-943、ja_JP.IBM-932 とかがあります。 > ja_JP.SJIS はありません(と記憶している)。 AIX では「AIX 5L 日本語コード一覧表(SC88-0427) 」を読むに、 * 「SJIS」はない * AIX 4.3.2 以前は IBM932、以降は IBM943 * 文字集合はマイクロソフト標準キャラクタセットと同一 * IBM943 は 0x5C == U+005C * Unicode への変換は Shift_JIS 風 (0x5C 以外) http://publibn.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/aixbman/codebook/jp_codebook.pdf しかし、以下のような話もあり、混乱もある模様。 http://www-01.ibm.com/support/docview.wss?uid=std3c2d180a83715c3a149256ec400280bf4 http://www.hi-matic.org/diary/?20090514 > Solaris の Windows 同等の locale 名は ja_JP.PCK です。 > ja_JP.SJIS はありません。 そういえば PCK は nkf でサポート希望来ましたな。 ruby でも alias 追加するか、replica にするか。 で、こいつは何者かというと、 --- PC 漢字コード PC 漢字コード (以降、PCK とします) は、一般に「シフト JIS (あるいは MS 漢字) コード」と呼ばれ、 Microsoft が Windows 3.1 で規定したマイクロソフト標準キャラクタセットと同等の文字集合および エンコーディングを提供するものです。ja_JP.PCK ロケールで日本語を表現する文字コード体系として 使われています。PCK に関する詳細は、PCK(5) マニュアルページを参照してください。」 http://download.oracle.com/docs/cd/E19253-01/819-0364/japan.utility-10006/index.html --- とあり、後ろに付いてる変換規則も見ると、 「PC 漢字コードと UTF-8 の変換は、内部で一旦変換元のコードセットから日本語 EUC に変換し、  そこから目的のコードセットへ変換します。」 とある。 じゃあ、PCK と 日本語 EUC の変換はと見ると、 日本語 EUC と PCK の文字コード変換規則は『TOG 日本ベンダ協議会』の日本語 EUC・シフト JIS コード変換仕様』に基づいています。」 とあるので、これですね。 http://home.m05.itscom.net/numa/cde/sjis-euc/sjis-euc.html で、この日本語 EUC と Unicode の変換規則は何かというと、どうも eucJP-ascii なようですね。 「JIS X 0221 式の変換 (ASCII と併用する場合)」 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 > 日立の HI-UX (HP-UX の亜種) に ja_JP.SJIS という locale が > ありますが、これが Shift_JIS か亜種 (CP932?) であるかは覚えていない…。 > HP-UX にも ja_JP.SJIS はあったかなぁ? HP-UX は SJIS/SJISMS で分けているように見えますね。 http://docs.hp.com/ja/5991-1165/ch02s06.html 総じて見ると、「ここで,SJISとはMicrosoft が Windows 3.1 で規定した  「マイクロソフト標準 キャラクタセット」のこととする.」って感じみたいですな。 http://home.m05.itscom.net/numa/cde/sjis-euc/sjis-euc.html ただ、変換表はどうかというと、eucJP-ascii 経由っぽい雰囲気も。 -- NARUSE, Yui