全角マイナスと全角ハイフンと半角マイナスと半角ハイフン
ホットペッパーAPIで提供されるお店の住所フォーマットがかなりバラバラでハマってしまいます。最もハマってしまうのが「全角ハイフン」の存在。
以下にハイフンとマイナスの全角文字と半角文字を列挙してみます。どれがどれだか分かりますか?
「‐」、「-」、「-」、「-」
プログラムでは、正規表現で全角マイナスと半角マイナス(これは半角ハイフンも同じ文字)をreplaceの対象としていました。そのため全角ハイフンの含まれる住所だけは正しくreplaceされず、その結果ジオコーディングできていませんでした。
これに気づいたのは、問題の住所をencodeURIComponentにかけてデバッグ表示させたときです。半角マイナスであればURIエンコードをしてもそのまま表示されますが、問題の住所のハイフンは%つきでエンコードされてしまったのです。
ちなみに先ほど列挙した4つの回答ですが、左から「全角ハイフン」、「半角ハイフン」、「全角マイナス」、「半角マイナス」です。(先に書いたように半角ハイフン = 半角マイナスですが。)
要するに半角ハイフンと見分けがつきにくい「‐」が全角ハイフンなわけで、これは見落としますねという話です。
コメントを残す