F.Ko-Jiの「一秒後は未来」

全角マイナスと全角ハイフンと半角マイナスと半角ハイフン

ホットペッパーAPIで提供されるお店の住所フォーマットがかなりバラバラでハマってしまいます。最もハマってしまうのが「全角ハイフン」の存在。

以下にハイフンとマイナスの全角文字と半角文字を列挙してみます。どれがどれだか分かりますか?

「‐」、「-」、「-」、「-」

プログラムでは、正規表現で全角マイナスと半角マイナス(これは半角ハイフンも同じ文字)をreplaceの対象としていました。そのため全角ハイフンの含まれる住所だけは正しくreplaceされず、その結果ジオコーディングできていませんでした。

これに気づいたのは、問題の住所をencodeURIComponentにかけてデバッグ表示させたときです。半角マイナスであればURIエンコードをしてもそのまま表示されますが、問題の住所のハイフンは%つきでエンコードされてしまったのです。

ちなみに先ほど列挙した4つの回答ですが、左から「全角ハイフン」、「半角ハイフン」、「全角マイナス」、「半角マイナス」です。(先に書いたように半角ハイフン = 半角マイナスですが。)

要するに半角ハイフンと見分けがつきにくい「‐」が全角ハイフンなわけで、これは見落としますねという話です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など