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

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は、これらの変更のうち、0x8157、0x815D、0x81FCは従ったけど、残り4つは従わなかった、ってことですよね。うーん、どうしてなんだろう…。
        親コメント
        • 0x815D は他に経緯があったものと思いますが

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

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

          親コメント
          • すみません。U+4EED が変更されたのは、Unicode 1.01 ですね。少なくとも June 1992 より前。
            親コメント
          • この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字だったかどうか…。
                親コメント
        • で、Microsoftは、これらの変更のうち、0x8157、0x815D、0x81FCは従ったけど、残り4つは従わなかった、ってことですよね。

          いま,Windows 2000 で確認しましたら,書かれているとおりです.一方,「マイクロソフト標準キャラクタセット仕様書」には変更前のコードポイント (左側の値) が書いてあります.ということは,どこかの時点で変更されたわけですね.

          ちなみに,MS明朝やMSゴシックのフォントには,U+301C のコードポイントに,Unicode Standard の例示字形と同じ (つまり波ダッシュを反転させたような) 図形が入っています.

          親コメント
        • by emk (30939) on 2006年07月21日 20時39分 (#982341) 日記
          > で、Microsoftは、これらの変更のうち、0x8157、0x815D、0x81FCは従ったけど、残り4つは従わなかった、ってことですよね。うーん、どうしてなんだろう…。

          単に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からのようですが。それならハングル大移動より後です。
          安岡センセイともあろうお方がこんな重要なことを根拠もなしに書くはずはありませんから、きっとあっと驚く証拠が出てくるに違いないと妄信しています:-)
          親コメント

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...