波ダッシュ(〜)と全角チルダ(~)は違う文字

大久保です。
今回はウェブフロントの技術とかではないけど結構な時間ハマっていた「〜」事件について。

書くことになったきっかけ

APIに値を送る際に「〜」が入っている値だけエラーになってしまっていました。
仕様書通りに書いているし間違っていないはずなのに…みたいな現象が起こり…。
結論から言うと、APIで許容している記号が「~」で入力していた記号が「〜」だったことが判明しました。

「〜」と「~」

「〜」と「~」は(こう見えて)違う文字らしいです。
1つめの「〜」:波ダッシュ (ウィキペディア)
 またの名を「波線」といい、ダッシュ記号として使われたり長音符として使われたり。
2つめの「~」:全角チルダ(ウィキペディア)
 数学の「漸近的に近い」を示したりホームディレクトリを意味したりするチルダ(~)の全角版。

本当に違う?

見比べてみた

波ダッシュ
faca45e257e1928e0bd25b67565ec97e.png
全角チルダ
3a37fe049924ebfb11e91600454c31a7.png
並べてみた(左:波ダッシュ 右:全角チルダ)
d42cf325959854257775694f44d02e84.png

分からん…。
違いを見抜けるようになった訳ではないので自分で入力しないとどっちがどっちだか分かりませんが、
言われてみれば波ダッシュの方がシュッとしていなくもない…?
これもフォントによりけりだと思うのでいまいち違いが分からないです。

それでも本当に違う文字

こちらのサイト でUnicode(UTF-8) へ変換してみると
波ダッシュ:U+E3809C
全角チルダ:U+EFBD9E
となっているので見た目はほとんど同じでも違う文字であるらしいです(そりゃそうだって感じかもしれませんが…)。

OSによる「〜」

Windowsで「から」と検索:~(←全角チルダ)が出てくる
Macで「から」と検索:〜(←波ダッシュ)が出てくる
今回の「〜」事件はここら辺が原因で起きたみたいです…。

まとめ

今回は「違う文字があるかも…」とは一切思わなかったためAPIで入力が弾かれる理由が見つからず、
だいぶ時間を消費してしまった印象でした。
実際調べ始めると二人の違いに悩まされている人が少なくないみたいです…。
個人的にはかなり大きな学びでした。

参考文献

波ダッシュ、全角チルダ問題まとめ
~ (波ダッシュ,全角チルダ,波線,ニョロ) が文字化けする問題をざっくり理解