パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

WAVE DASH問題縁起」記事へのコメント

  • 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月のことで,

    • 正確に言うと、違います。1991年発行の Unicode 1.0 仕様書 (The Unicode Standard: Worldwide Character Encoding Version 1.0 Volume 1, Addison & Wesley) に既に SJIS から Unicode へのマッピングテーブルが示されており、この時点で既に U+FF5E です (p.601)。もちろん Microsoft はこの仕様策定にどっぷりかんではいますけど、mapping に関する限り事後に変更した 10646 の方が問題があった、ような気がしてならない。
      • えっと、『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字のマッピングが変更されています。
        • 0x8157 U+3004→U+4EDD
        • 0x815D U+00AD→U+2010
        • 0x815F U+FF3C→U+005C
        • 0x8160 U+FF5E→U+301C
        • 0x8161 U+2225→U+2016
        • 0x817C U+FF0D→U+2212
        • 0x81FC U+20DD→U+25EF

        で、Microsoftは、これらの

        • 0x815D は他に経緯があったものと思いますが

          • 0x8157-U+4EED は Unicode 1.0 から 2.0 で文字のコードポイントが変更されたことに伴う。
          • 0x81FC-U+25EF は、U+20DD は合成用文字であるため明らかな間違い、ということで修正したと思われる。

          で、要するに Microsoft は最小限に限って修正しただけだと思う。

          • この3つについては,変更の経緯が分かります.

            • 0x8157 は「同上記号」で,記号なので当初 CJK Symbols and Punctuation の枠 (U+3004) にあったけれど,CJK Unified Ideograph (漢字枠) にも同じ文字 (U+4EDD) があったので,ISO/IEC 10646-1:1993 の標準を作るときに,漢字枠の方を生かした.U+3004 は,そのときに「JISマーク」に入れ換えた.
            • 0x81FC は昔の JIS X 0208 規格で「合成用丸」になっていたので,最初の変換表を作った人は Combining Diacritical Marks の枠から U+20DD にしたけれど,JIS の方が「この字は combining character ではない」という見解を出したので U+25FF に変更した.
            • 0x815D は「ハイフン」で,一方 U+00AD は SOFT HYPHEN (ハイフンを入れてもいい位置を示す記号で,表示されないこともある) だから,意味が違う. 明かに変換表の間違いで, 修正して HYPHEN (U+2010) の方に対応付けた.

            ……ということでしょう.

            親コメント
            • by emk (30939) on 2006年05月13日 3時39分 (#938212) 日記
              > JIS の方が「この字は combining character ではない」という見解を出した

              のは97JISなので、それを根拠にマイクロソフト標準キャラクタセットのマッピングを決めたというのはちょっと考えにくいです。
              親コメント
              • 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に収録された。」ということで,少なくともその時点には決まっていたということです.

                親コメント
              • というより、この合成用丸は重ね打ちを前提にしていた (JIS C6226 では) ので一文字、として扱われていましたし、日本語を扱うすべての実装がそうなっていました。U+20DD は元々正規分解用に使うことを規定された文字なので、これも ISO 10646 とは直接関係しない明らかな間違い、ということで変更されたものと思います。
                親コメント
              • うーむ、とすると、ナゾとして残ってるのは、この0x8157・0x815D・0x81FCのマッピングを、Microsoftが「いつ」変えたのか、ですね。で、私のつたない記憶を辿ってみたんですが、Windows NT 3.1のPC/AT対応版(1994年1月28日発売)とNEC PC-9800対応版(1994年2月25日発売)とで、MultiByteToWideCharの動きが違ったような気がするんですよ。ただ、それがこの3字だったかどうか…。
                親コメント

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...