波ダッシュ
波ダッシュと全角チルダ
期間などの範囲を表したり、省略などを意味するものに「~」(波ダッシュ)という文字があります。この記号は、現代日本語ではかなり頻繁に使われる文字の一つであり、ユニコードにも「WAVE DASH」として収録されています。
ところが、文章中で頻繁に使われる基本的な記号であるにも関わらず、波ダッシュは使う側が十分注意して扱わないとトラブルになりかねない、問題のある文字なのです。波ダッシュに関わる問題はあまり知られていないようですから、ここで具体的に解説しておきましょう。
文字をコンピュータで扱うには、まず文字コードで定義しなければなりません。JIS X 0208で規定されている「波ダッシュ」のコード番号は0133(区点コード)ですが、多くのパソコンで実際に使われている標準的な文字コードであるシフトJISでは「0×8160」というコード番号が割り当てられています。
ちなみに、文字コードの規定書では、漢字は字形を掲載するだけですが、記号類は字形だけでなく意味もあわせて定義されていることが少なくありません。たとえば日本のもっとも基本的な文字コードであるJIS X 0208では、「~」の字形に「波ダッシュ」(WAVE DASH)という意味がつき、さらにコード番号がいくつか定義されています。
Windows XPや2000で波ダッシュをシフトJIS入力した場合、テキストデータには「0×8160」と記録されます。では、このテキストをあらためてユニコードで保存し直したらどうなるでしょうか。
ユニコードでは、「波ダッシュ」(WAVE DASH)に「U+301C」というコードポイントが割り当てられていますから、規定どおりであれば「U+301C」と記録されるはずです。ところが、Windows XPのユニコード対応アプリケーションでユニコード保存すると、波ダッシュは「U+301C」ではなく、なぜか「U+FF5E」というコード番号で保存されてしまうのです。
「U+FF5E」というのは、波ダッシュではなく、「全角チルダ」を表すコードポイントです。チルダというのはキーボードの右上のキーで入力する記号で、欧文書体(半角文字)だと字面の上に小さく表示される波状の文字です。書体によっては全角チルダと波ダッシュはほとんど変わらない形をしていますが、意味としてはまったく違うものです。
形がほとんど同じであればかまわないと思われるかもしれませんが、意味が違い、コードポイントも異なる以上、ごっちゃにしていいわけがありません。特に他のシステムとの整合性を考えた場合、波ダッシュのつもりで全角チルダが使われるというのは望ましいことではありません。たとえば検索しようとした場合などは混乱が起きる可能性もあります。
もっとも、DTPでは、シフトJISで入力している限り波ダッシュが全角チルダになってもそれほど大きなトラブルは起きないでしょう。Macintoshの標準フォントやモリサワフォントなどでは波ダッシュ(U+301C)と全角チルダ(U+FF5E)は同じ形をしているので、どちらであっても文字化けする心配はありません。問題なのはWindows上で波ダッシュをユニコード入力した場合です。
先ほど述べたように、波ダッシュはユニコードで「U+301C」と定義されています。ところが、WindowsでU+301Cの文字を入力した場合、一般的に使われている波ダッシュと異なる文字になってしまう可能性があるのです。
MS明朝やMSゴシックでU+301Cのポイントに割り当てられている文字は「~」ではなく、上下反転した形(左上から始まって右下で止まる波線)です。この見慣れない文字は、シフトJISでは入力できません(シフトJISのコードポイントを持たない)が、WindowsのIMEパッドなどで入力することは可能です。
WordやInDesignなどのユニコード対応アプリケーションで、IMEパッドを使って波ダッシュ(U+301C)を入力したとします。この場合、書体がMS明朝やMSゴシックであれば左上から右下に流れる波ダッシュになり、モリサワ書体などだと通常の向きの波ダッシュになるといったように、フォントによって異なる文字になってしまうのです。ちなみにヒラギノ書体では、OpenTypeフォントだと通常の向き、Windows版TrueTypeフォントはMS書体と同じ向きになるというように、MS書体との互換性をどう考えるかで対応を変えているようです。
波ダッシュと文字コード
問題を整理してみましょう。Windowsでは、シフトJISで出せる波ダッシュ文字(0×8160)がユニコードでは全角チルダ(U+FF5E)に割り当てられており、同じ字なのに文字コードによって違う意味の文字になります。一方、ユニコードで入力する波ダッシュ文字(U+301C)はシフトJISには割り当てられておらず、しかもこの文字はMS書体では上下反転した形で収録されているわけです。
どうしてこのようなことが起きたのかというと、原因はユニコードの規定書にありました。実は、ユニコードの規定書に「WAVE DASH」として波ダッシュの反転した字形が記載されていたのです。日本語のよく分からないスタッフが誤解したために起きたミスのようですが、Windowsはユニコードをサポートする際、これをそのまま標準フォントの字形に採用してしまったのです。
こういったことから、Windowsで波ダッシュを扱う際は、どの文字コードでどのようなコードポイントで入力されているか、そして使いたい書体がどの形をサポートしているかを把握しておく必要があるということになります。
なお、Windows Vistaでは、新書体メイリオを含むMS書体全てで、U+301Cのポイントに通常の波ダッシュの字形が割り当てられました。U+FF5E(全角チルダ)の字形は従来どおり変わっていませんから、U+301CでもU+FF5Eでも同じ字形で表示されることになったわけです。
これでようやく同じ波ダッシュなのに二つの字形が存在するという問題は解消することになりましたが、XP以前のWindowsとVista以降とでは、同じ文字(U+301C)が違う形になってしまうという点に注意しておく必要はあるかもしれません。
なお、Vista以降でも、シフトJISで入力する波ダッシュ(0×8160)は、ユニコードでは、本来の場所であるU+301Cではなく全角チルダのU+FF5Eに割り当てられています。システムの互換性を考えてのことなのかもしれませんが、Windowsでは今後とも全角チルダと波ダッシュの混同が続くことになるでしょう。
(田村 2007.5.21初出)
(田村 2016.5.25更新)