Microsoft が「~」(波ダッシュ) の文字に U+FF5E FULLWIDTH TILDE をマッピングする変換ルールを作ったのは,
Windows 3.1 の「マイクロソフト標準キャラクタセット」の仕様ができたときです.
この当時は,Windows 3.0 まで OEM メーカー毎に違っていた字体や拡張文字の種類を,
Windows 3.1 以降は統一するといって評判になっていたと思います.ついでに,フォントファイルを Unicode ベースで構成することも.
「Microsoft Windows version 3.1 日本語版 マイクロソフト標準キャラクタセット仕様書 Revision 1.0」という文書によれば,その具体的な仕様が決まったのは1992年の12月のことで,
Wikipedia [wikipedia.org] によれば,日本語版 Windows 3.1 は1993年5月に発売されています.
1994年3月に JIS X 0221 原案がでてきても,
Microsoft としては,いまさら出てしまった製品を変更するわけにはいかなかったのではないでしょうか.
特に,フォントのような基本的な部分に関わることは.
広まってしまった間違いを後から修正できないのはよくあることで,
たとえば HTTP の Referer: ヘッダーに r が一個足りないのとか,
UNIX の creat() 関数に e が足りないこととか,
間違っているとは分かっていても修正はもうできませんよね.
えっと、『Unicode Encoding to DBCS Code Page & Asian Standards Mappings』(The Unicode Standard, Version 1.0, Volume 1 (October 1991), pp.560-604所収)のXJISと『Shift-JIS to Unicode, Version 0.9』(8 March 1994)を較べてみたところ、少なくとも以下の7字のマッピングが変更されています。
0x81FC は昔の JIS X 0208 規格で「合成用丸」になっていたので,最初の変換表を作った人は Combining Diacritical Marks の枠から U+20DD にしたけれど,JIS の方が「この字は combining character ではない」という見解を出したので U+25FF に変更した.
0x81FC に相当する文字 (JIS X 0208 の2区94点) が正式に「合成用丸」でなくなったのは,おっしゃるとおり JIS X 0208:1997 ですが,
JIS X 0221:1995 の附属書として JIS X 0208 と UCS との間の変換表を決めたときには,これを合成に使用しないことは決まっていました.(JIS 規格番号と年号との間の区切り文字は,1995年当時は "-" で現在は ":" ですが,面倒なんで ":" で統一します.)
それが「JIS X 0221原案は1994年3月に完成し、これらの対応表は附属書3に収録された。」ということで,少なくともその時点には決まっていたということです.
うーむ、とすると、ナゾとして残ってるのは、この0x8157・0x815D・0x81FCのマッピングを、Microsoftが「いつ」変えたのか、ですね。で、私のつたない記憶を辿ってみたんですが、Windows NT 3.1のPC/AT対応版(1994年1月28日発売)とNEC PC-9800対応版(1994年2月25日発売)とで、MultiByteToWideCharの動きが違ったような気がするんですよ。ただ、それがこの3字だったかどうか…。
あと、Windows NT 3.1には韓国語版も存在したとおっしゃって [fc2.com]いますが、ソースは何ですか? List of Localized MS Operating Systems [microsoft.com]という資料によれば、韓国語版のWindows NTは4.0からのようですが。それならハングル大移動より後です。 安岡センセイともあろうお方がこんな重要なことを根拠もなしに書くはずはありませんから、きっとあっと驚く証拠が出てくるに違いないと妄信しています:-)
Microsoft のマッピング (スコア:1)
Microsoft が「~」(波ダッシュ) の文字に U+FF5E FULLWIDTH TILDE をマッピングする変換ルールを作ったのは, Windows 3.1 の「マイクロソフト標準キャラクタセット」の仕様ができたときです. この当時は,Windows 3.0 まで OEM メーカー毎に違っていた字体や拡張文字の種類を, Windows 3.1 以降は統一するといって評判になっていたと思います.ついでに,フォントファイルを Unicode ベースで構成することも.
「Microsoft Windows version 3.1 日本語版 マイクロソフト標準キャラクタセット仕様書 Revision 1.0」という文書によれば,その具体的な仕様が決まったのは1992年の12月のことで, Wikipedia [wikipedia.org] によれば,日本語版 Windows 3.1 は1993年5月に発売されています.
1994年3月に JIS X 0221 原案がでてきても, Microsoft としては,いまさら出てしまった製品を変更するわけにはいかなかったのではないでしょうか. 特に,フォントのような基本的な部分に関わることは.
広まってしまった間違いを後から修正できないのはよくあることで, たとえば HTTP の Referer: ヘッダーに r が一個足りないのとか, UNIX の creat() 関数に e が足りないこととか, 間違っているとは分かっていても修正はもうできませんよね.
Re:Microsoft のマッピング (スコア:1)
Re:Microsoft のマッピング (スコア:1)
Re:Microsoft のマッピング (スコア:1)
で、要するに Microsoft は最小限に限って修正しただけだと思う。
Re:Microsoft のマッピング (スコア:1)
Re:Microsoft のマッピング (スコア:1)
この3つについては,変更の経緯が分かります.
……ということでしょう.
Re:Microsoft のマッピング (スコア:1)
のは97JISなので、それを根拠にマイクロソフト標準キャラクタセットのマッピングを決めたというのはちょっと考えにくいです。
Re:Microsoft のマッピング (スコア:1)
0x81FC に相当する文字 (JIS X 0208 の2区94点) が正式に「合成用丸」でなくなったのは,おっしゃるとおり JIS X 0208:1997 ですが, JIS X 0221:1995 の附属書として JIS X 0208 と UCS との間の変換表を決めたときには,これを合成に使用しないことは決まっていました.(JIS 規格番号と年号との間の区切り文字は,1995年当時は "-" で現在は ":" ですが,面倒なんで ":" で統一します.)
それが「JIS X 0221原案は1994年3月に完成し、これらの対応表は附属書3に収録された。」ということで,少なくともその時点には決まっていたということです.
Re:Microsoft のマッピング (スコア:1)
Re:Microsoft のマッピング (スコア:1)
Re:Microsoft のマッピング (スコア:1)
いま,Windows 2000 で確認しましたら,書かれているとおりです.一方,「マイクロソフト標準キャラクタセット仕様書」には変更前のコードポイント (左側の値) が書いてあります.ということは,どこかの時点で変更されたわけですね.
ちなみに,MS明朝やMSゴシックのフォントには,U+301C のコードポイントに,Unicode Standard の例示字形と同じ (つまり波ダッシュを反転させたような) 図形が入っています.
Re:Microsoft のマッピング (スコア:1)
単にUnicode 1.0.1の変更点 [textfiles.com]にはその3文字しか含まれていなかったというだけの話だと思います。Unicode.orgのサイト上にも同様の資料 [unicode.org]があります。
# Unicode 1.0.1 Addendumの現物を持っている [srad.jp]はずのalpさんが「9. Character mapping changed」に全く触れていないのが不可解なのですが、1992年11月付の資料が1992年6月発行の「The Unicode Standard, Version 1.0, Volume 2」に挟み込まれているはずはありませんし、もしかして正誤表も複数バージョン存在したりするのでしょうか。
Unicode 1.1以降の変更では、1993年5月発売のWindows 3.1 日本語版に間に合いません。Windows 3.1 日本語版に含まれている「MS ゴシック」「MS 明朝」はすでに内部エンコーディングがUnicodeベースで、これを表示するためにGDI.EXEにはSJIS→Unicodeの変換表が内蔵されていました。この変換表における図形文字のマッピングが現在のものと完全に同一であることも確認しました。
あと、Windows NT 3.1には韓国語版も存在したとおっしゃって [fc2.com]いますが、ソースは何ですか? List of Localized MS Operating Systems [microsoft.com]という資料によれば、韓国語版のWindows NTは4.0からのようですが。それならハングル大移動より後です。
安岡センセイともあろうお方がこんな重要なことを根拠もなしに書くはずはありませんから、きっとあっと驚く証拠が出てくるに違いないと妄信しています:-)
Re:Microsoft のマッピング (スコア:1)
失礼。NT 3.51からでした。
韓国語版Windows NTとハングルの大移動 (スコア:1)