はじめに 2014年9月29日から10月3日にかけて、スリランカのコロンボで国際文字コード規格を審議するWG2会議が開催された。この会議において、WAVE DASH（符号位置U+301C）の例示字形を変更をする提案、文書番号「N4606」[*1]（図1）が審議され、特に反対が出ないまま、無事に勧告として承認された[*2]。この勧告は、今年中ごろに発行を予定されるUnicode 8.0でも反映される予定だ。 少しパソコンに詳しい人なら、WAVE DASHと聞くと「ああ、あれ」と顔をしかめるかもしれない。文字コードにはいくつか扱いが厄介な文字が存在する。WAVE DASHはその代表格だ。 この文字には2つの問題が組み合わさって存在する。1つはシフトJISからUnicodeへの変換先が、２つありうるというマッピングの問題。具体的にはシフトJISで0x8160（JIS X 0208では1-33）をUnicodeに変換した場合、Microsoftの製品群ではU+FF5E、それ以外の多くはU+301Cと異なってしまう。しかも大半のフォントはU+FF5EとU+301Cのグリフを同一にしているので、外見からは全く判定できない。 そしてもう1つの問題を解決しようというのがN4606だ。文書そのものはごく短いものだが、この文字の問題点とその処方箋を端的に描き出している。 We propose to change the sample character layout from the current shape to the original shape.

私たちは例示字形を現在の形状からオリジナルの形状に変更することを提案します。 The fonts used in Windows XP (e.g. MS Mincho and MS Gothic) follow Unicode’s sample character layout. However the other platform - e.g. Windows Vista and later, Mac OS X, Linux / Unix, iOS, Android, Chrome OS - already do not follow Unicode’s sample character layout, but the original layout.

Windows XPで使われるフォント（例えばMS明朝とMSゴシック）は、Unicodeの例示字形を適用していました。しかし他のプラットフォーム、例えばWindows Vistaとそれ以降、Mac OS X、Linux/Unix、iOS、Android、Chrome OSは、すでにUnicodeの例示字形を適用しておらず、オリジナルの形状になっています。 Since the support of Windows XP has been discontinued, this is a good time to change the sample character layout to the original one.

Windows XPのサポートが打ち切られたので、これはオリジナルのものに例示字形を変更する好機です。 少し付け加えると、Unicode規格票が最初のバージョン（1991年）から日本のJIS文字コードを間違って引用してしまった。その結果、Unicodeの例示字形を実装したMicrosoftと、JIS文字コードの例示字形を実装した大多数のメーカーとの間で、互いに反対向き（正確には線対称）のグリフを実装する状況が続いた（図2）。Microsoftは2006年発売のWindows Vistaでグリフを修整したが、今でも古いMS明朝・MSゴシックのWAVE DASHを見ることがある。 コロンボ会議に提出された「N4606」により、四半世紀もの時を経て、ようやくこの問題は解決に向かうことになった。

UnicodeとISO/IEC 10646の連繋 報告の前に、3つの国際文字コード規格について説明が必要だ。まずUnicodeとISO/IEC 10646、そして後者の翻訳規格JIS X 0221。これらの規格はレパートリを同期させているが、それぞれ成り立ちや性質が異なる。そうした違いの狭間でWAVE DASHの問題が起きた。 ISO/IEC 10646は公的機関が定める公的標準だ。政府調達でも条件にされるなど、民間の標準より何倍も権威がある。原案作成にあたっては世界各国の代表（ナショナルボディ）が集まり、投票と修正を繰り返しながら練り上げていく。権威がある分だけ動きが遅い訳だ。 規格番号「10646」として開発が始まったのは1984年。それまであった規格の符号空間（収録可能なスペース）が7ビット（128字）や8ビット（256字）だったのに対し、10646は16ビット（65,536字）、のちには32ビット（4,294,967,296字）にまで拡張され、漢字を含む世界各国の言語を収録する規格とされた。しかし各国の意見が激しく対立、開発作業は難航する。特に議論の的となったのが文字数の多い漢字の収容方法で、日本、中国、韓国は最後まで激しく意見を戦わせている。 一方、1980年代末から民間企業であるApple、Microsoft、IBMなどが集まり、独自に開発を始めたのがUnicodeだ。彼等は同じ業界という利害の一致しやすさを生かし、例えば文字数の多い漢字については字形の違いが少ないものは統合するというように、割り切ったアイデアにより開発を進めていった。10646がぐずぐずしている間に、1989年に最初のドラフト、翌1990年4月にはドラフト２、そして同年12月には最終ドラフトを発行するところまで進めていった。 そうした中、ようやくできた10646の草案が、1991年6月に行われた国際投票で否決されてしまう。この時、反対票を投じた多くの国が要求していたのが、同様な目的を持ち、着々と完成度を高めていたUnicodeとの一本化だった。こうして1991年8月ジュネーブで行われたWG2会議で、正式に10646とUnicodeとの合併が決定する。同年10月、漢字部分は先送りしたUnicode 1.0 Vol. 1が刊行される。この後、10646との一本化作業がUnicodeのメンバーも加わって進められ、同年12月に草案が完成。国際投票の結果、今度はめでたく賛成多数で可決、1993年5月に制定されたのがISO/IEC 10646-1:1993だ[*6]。 3番目の国際文字コード規格JIS X 0221は、ISO/IEC 10646と技術的な内容や様式が一致する翻訳JISとして1995年に制定された。日本はISO/IEC 10646の開発に深くかかわっており、それもあって普及を目的に翻訳出版されたものだ。日本語で書かれたJIS X 0221は、日本人にとってISO/IEC 10646に関する最も信頼できる情報源なのだ。 ここまで3つの規格の成立を駆け足で見たが、ここで大事なのは、UnicodeとISO/IEC 10646はそれぞれ別個に開発が始まったが、やがて共通の利害を見出してレパートリを同期することにしたという歴史だ。小松の提案は、まずISO/IEC 10646の会議で審議された。そこで承認されると、今度はUTCに提案、再び審議されている。ここから分かるとおり、2つの規格は互いにチェックをし合いながら開発を進めている。Unicodeは文字の追加について、ISO/IEC 10646の承認なしに独断では進めない。

3つの国際規格におけるWAVE DASHの比較 ではWAVE DASHに戻ろう。調べた限り、この文字を前述国際文字コード規格の中で、最も早くU+301Cに割り当てたのは、1990年12月のUnicode 最終ドラフトだ。この記述は1996年の2.0まで受け継がれている（図3）。ここでは「JIS Punctuation」（JISの記述記号）と注記しているが、これはどのJISなのか。 1990年12月時点における該当しそうなJIS文字コードは、JIS X 0208（当初の名前はJIS C 6226、1987年に改称）とJIS X 0212の2つだ。このうちJIS X 0208の1-33に「WAVE DASH」と大変よく似た「波ダッシュ」がある（図4）。Unicodeはこれを引用したのだろう。 その上で図5をご覧いただきたい。これは前節で説明した3つの国際文字コード規格のWAVE DASH、及びこれらの引用元であるJIS X 0208「1-33 波ダッシュ」の、改訂バージョンごとの例示字形を年代順に一覧表にしたものだ。左から制定が古い順に配列してある[*7]。 原典であるJIS X 0208が一貫して「上→下→上」であるのに対し、これを最初に引用したUnicodeは一貫して「下→上→下」にしている（MS明朝・MSゴシックは、このUnicodeの例示字形を実装したのだろう）。ただし、1999年の3.0で「下→上→下」は変わらないまま、より抑揚が強いグリフ・デザインに変更されている。 Unicodeに次いで現れるのが1993年のISO/IEC 10646第1版だ。そしてUnicode 3.0に追随する形で、2000年から変更された同じグリフを使うようになる。 目を惹くのは、太枠で囲ったJIS X 0201:1995（第1版）だ。原典のJIS X 0208を除けば、この版だけが「上→下→上」であること。これについては後で検討しよう。ただし2001年の第2版以降はUnicodeやISO/IEC 10646と同一のものになる。 以上をまとめると、最初にJIS X 0208を引用したのも、最初にJIS X 0208と違った例示字形を掲載したのも、そしてそれまでの例示字形を最初に変更したのも、いずれもUnicodeである。

JIS X 0221第1版の例示字形が特異である理由 WAVE DASHの例示字形がJIS X 0208と違ってしまったのは、どうやらUnicodeに原因がありそうだということが分かった。そこで素朴な疑問として思うのは、小松提案までなぜ四半世紀もの間、訂正の働きかけがされなかったのかということだ。しかし、結果として訂正されなかったのは確かだが、努力は続けられていた。 それが伺えるのが前述、図5赤枠で示した1995年のJIS X 0221第1版だ。なぜ、この版だけがUnicodeとも、ISO/IEC 10646とも、そして他ならぬJIS X 0221の2版以降とも異なる例示字形を掲載したのか？ これについては、第1版の解説で説明されている[*8]。 4.4.3 字形・字体の変更（一部反映） 符号表に例示されている図形文字の字体や字形の変更要求が何点か出されていて、訂正が合意されている。

（１）日本の文字や図形で、明らかに誤りであるもの、極端に字形が悪いもの。

これらについては、この規格では訂正したものを使った。（P.995） つまり、すでにISO/IEC 10646を審議するWG2会議では訂正することが合意済みなので、原規格ではまだ変更されていないけれど、先取りして変更することにしたということだ。 では、なぜ2001年の第2版（JIS X 0221-1:2001）で、合意されたはずの訂正がされなかったのだろう。第2版の解説を見ると第1版以降の出来事が分かる。以下に引用する部分は「3.3.8 b 波ダッシュ」として、WAVE DASH（U+301C）がJIS X 0208のどの符号と対応するかを解説した部分だ。そこで備考として、次のように追記されている。 備考 原国際規格の詳細符号表の（引用者注・WAVE DASHの）例示字形は、JIS X 0208の例示字形との相違が大きい。このため、ISO/IEC JTC1/SC2/WG2に問題提起を行い、その第25回会議で、この対応が規格の意図に一致していることを確認した。国際規格の詳細符号表の例示字形については、日本からの提案で変更の検討が行われ、いったんはJIS X 0208の例示字形に近い形に変更することで合意されたが、その後反対意見が再提出され、原国際規格の第2版の出版までに結論が出ず、第1版と同様の例示字形で示されている。この規格では、誤解を避けるため、我が国で一般的なJIS X 0208の例示字形に近い形で示している。（P.1108～P.1119） つまり第1版で書かれていたように、WG2会議でいったんは訂正が合意されたのだが、その後反対意見が出て合意は差し戻されたということのようだ。

規格上、例示字形は正式な規定ではない ただし、ここで理解不能なのは、「JIS X 0208の例示字形に近い形で示している」と書かれているのに、図5で分かるように実際にはJIS X 0208と違う形（Unicodeと同じ形）に変えられていることだ。これについて、JIS X 0221:2001の原案作成委員会で、原稿の取りまとめ役だった関口正裕委員は以下のようにコメントした。 U+301Cの例示字形については、原案作成委員会の段階では第1版と同様にISO/IEC 10646の符号表を元に、U+301Cの例示字形を差し替えることになっていました。ところが原案完成後の作業ミスにより、差し替えないまま出版されてしまったのです。出版後に気付き、正誤表の発行を検討しましたが、以下のような声があり、結局は訂正しないままになりました。 規格の位置付け上、例示字形は適応範囲外。

差し替えないことで正誤表が必要になるほど大きな変更ならば、そもそも国際規格との整合性の観点からは差し替えるべきでなかった。 ここで注目するべきは、例示字形は適応範囲外、つまり正式な規定ではないということだ。意外にも、実際にJIS X 0221規格本文にあたってみるとその通りなのである。 図形記号は、文字の代表的な可視化表現と見なさなければならない。この規格群は、各文字の形を正確に規定しようとするものではない。文字の形は、採用するフォントのデザインに左右されるものであり、この規格群の適応範囲外とする。（17 符号表及び一覧表の構造 P.13）[*9] これは第2版の本文だが、現行規格まで同じ文意が継承されている。じつは文字コード一般において、文字の同定で重視されるのは例示字形ではなく文字の名前なのだ。例えば文字にどのような名前を付けるべきか、JIS X 0221（ISO/IEC 10646）は幾重にも丁寧なルールを作っている[*10]。一方で例示字形はフォントに左右される不安定な情報だからほとんど規定はない。後述するように、U+301C例示字形の引用ミスがそのままになったのも、こうした考え方が影響している可能性が強い。

WAVE DASHをめぐる修正提案の歴史 では実際に、WAVE DASHをめぐってどのような議論があったのだろう。ISO/IEC 10646を審議するWG2会議で配布されている文書は基本的に公開されており、誰でも読むことができる。そこから当時の審議の様子をたどってみよう。 まずWAVE DASHについて、最初の修正提案は、当時JIS X 0221の原案作成をリードしていた芝野耕司委員長による下記の2つの文書と思われる。 N 939 “Defects of Japanese graphic characters” Japan - K. Shibano; 1993-10-28

N 1014 “Defects of Japanese graphic characters (revised N 939)” Japan - K. Shibano; 1994-04-18 ただし、これらはなぜかWG2の文書ページから消えており、後述する議事録から内容が推測できるだけだ（筆者にも問い合わせてみたが見つからないとのことだった）。先のJIS X 0221解説では、これらの文書によって「問題提起を行い、その第25回会議で、この対応が規格の意図に一致していることを確認した」としていた。この会議は1994年4月18～22日にトルコ南西部の観光都市アンタルヤで開催されており、議事録が下記のように公開されている。 N1033 “Unconfirmed Minutes of ISO/IEC JTC 1/SC 2/WG 2 Meeting 25” V.S. UMAmaheswaran, Meeting Secretary; Mike Ksar, Convener, 1994-06-01 （ftp://std.dkuug.dk/ftp.anonymous/JTC1/SC2/WG2/docs/n1033.pdf） 上記文書16ページに「All the items in N 1014 were accepted」（N1014のすべての項目は受理された）とあり、芝野委員長の修正提案が受諾されたことが分かる。ところが、この決定により規格の例示字形が修正されるはずだが、なぜか実際の規格では何の変化も見られないのは、図5で示したとおり。

Unicode役員による5年後の再検討 その後、再びWAVE DASHを取り上げたのが、アンタルヤ会議から5年も後の1999年6月、当時Uniciodeコンソーシアムの役員を務めていたアスムス・フライタグによって提出された文書だ。前述、JIS X 0221第2版の解説にあった、いったん合意された修正が差し戻しになる原因となった「反対意見」も、この文書と考えられる。 N 2030 “Progress Report on Printing ISO/IEC-10646-1” Asmus Freytag, 1999-06-10 （http://www.unicode.org/L2/L1999-UTC/u1999-022.pdf） フライタグはこの当時、Unicode 3.0とISO/IEC 10646-1-2000（第2版）を印刷するためAFII（Association for Font Information Interchange）という団体を設立、WG2とUTCの協力を得ながら規格に収録された文字の典拠を洗い直し、フォントをデザインし直す作業をまかされていた（図5で、Unicode 3.0以降のU+301C例示字形統一も彼の仕事か）。その難事業が1文字を除いて、ようやく終了したというのが、上記文書の報告だ。そして、その1文字というのが他ならぬWAVE DASHなのだった。 彼はWAVE DASHの典拠を検討した結果、これがもともとJIS C 6226-1978をソースとする（つまり引用ミスをした）ことを認めた上で、それでもUnicode 3.0とISO/IEC 10646（第2版）の出版にあたっては、JIS C 6226-1978例示字形と一致させないつもりだと書く。 Because of the deficient nature of the original glyph and the presence of the full width character, implementers of the standard have widely mapped x2141 to U+FF5E. Independently, both WG2 and UTC have tried to ‘correct’ the glyph for 301C.

オリジナル（引用者注：Unicode 1.0）の例示字形の不十分な性質と全角文字の存在のため、標準の実装者は、広く0x2141（引用者注：区点では1-33）をU+FF5E（引用者注：全角チルダ）に対応させました。WG2とUTCはそれぞれ、U+301C例示字形を「修正」しようと努めました。 つまり、引用ミスも原因で、JIS X 0208の1-33に対応するのはU+301Cでなく、U+FF5Eにする実装が多い。そこでWG2とUTCは例示字形を修正しようとしている。しかし、フライタグはこうした修正には反対だという。 In AFII's opinion, and given the implementation history, at this point, the only possible resolution is to return the glyph to the shape that was shown in the original publications of both standards where it was synchronized. This avoids the problem of inadvertently re-interpreting the standard, long after it has been published.

AFIIの意見では、そして実装の歴史を考えると、ここまでで唯一の可能性がある解決案は、（引用者注：修正はせずに）UnicodeとISO/IEC 10646の最初の版で一致していた形状に例示字形を戻すことです。出版から長い時間が経過した後では、それが規格をうっかり再解釈する問題を避けることです。 ここで、フライタグが心配した「規格をうっかり再解釈する問題」とは何だろう。思い出してほしいのだが、この当時巨大なシェアを握っていたWindows XPは、Unicodeの「下→上→下」を実装していた（前掲図2を参照）。こうした状況において規格の例示字形を変更すればどうなるか？ これから参入するフォントベンダーは、新しい例示字形を実装するだろう。そうすればWindows XPとの間に非互換が生じてしまう。そうした実害が予想されるなら、現在の例示字形が誤った形であるとしても変えない方がいい、フライタグはそのように考えたのではないか。 ただし、「出版から長い時間が経過した後では」という部分には違和感がある。アンタルヤ会議の決定後すぐに修正されさえすれば、「出版から長い時間」はたたなかったはずだからだ。もっとも、修正されなかった原因が分からない以上、誰の責任とも言えないのだが。 この後、日本ナショナルボディは、2000年1月になって、“N2166 U-301C WAVE DASH” として、フライタグへの反論文書を提出[*11]、これが2000年9月19～22日にアテネで開催された第39回会議で取り上げられている。しかし議事録はごく短く、にべもないという感じで以下のように書くのみだ[*12]。 To convey to Japan that the glyph change proposal in document N2166 for 301C WAVE DASH is not accepted. The glyph in the standard should be treated as a glyph variant in JIS 208 standard.

文書N2166、U+301C WAVE DASH例示字形を修正する提案は、受け入れられないことを日本に伝達する。規格の例示字形は、JIS X 0208のグリフ・バリアントとして処理されるべきだ。 ここでいう「グリフ・バリアント」とは、前述した「例示字形はフォントのデザインで変わるもの」との考え方からでたものだろう。つまり規格の上からは「グリフ・バリアント＝大きな違いのない文字」だから、特に変更の必要もないということだ。 その後、WG2会議やUTCでは、WAVE DASHについて振り返ることのないまま時間が過ぎてゆく。そして小松提案を承認したコロンボ会議が開催されたのは、あの旧バージョンのMS明朝・MSゴシックを最後に実装したWindows XPのサポート終了日[*13]――いいかえればフライタグが心配した要因のサポート終了日――から半年たった、2014年9月のことだった。（文中敬称略）