2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2種類のハイフン「-」と「−」が全く別の記号だったので文字列が一致しなくて困った話

Last updated at Posted at 2024-11-04

結論

先に結論を記載しておく。

今回問題になった2つのハイフンは以下の文字コードである。

記号 Unicode番号
U+FF0D
U+2212

発生した現象

データベース上の2つのテーブルに登録した文字列が、一致しているかどうかを判定して処理をするシステムを構築していた。

このとき、データベース上の2つのテーブルには「サンプル-1」「サンプル−1」と登録されていた。

この文字列を比較して一致判定をするが一致せず、原因を探してみるとハイフンのような文字が文字コードの異なる別の記号だったことが確認できた。

これらの文字列は顧客からExcelにてもらったファイルをインサートしただけなので、文字コードの違いに気づくのに時間がかかった。

それぞれ何の記号なのか?

U+2212

せっかくなので、今回の2種類の記号が何の文字なのかを少し調べてみた。

U+2212 に関しては先人がQiita上にまとめてくれた一覧に記載されているので、そちらの記事リンクを貼り付けておく。

上記の記事によると U+2212 は全角のマイナス記号のようだ。

U+FF0D

U+FF0D に関しては上記の記事にも記載がなかったので、調べてみると「全角ハイフンマイナス」という記号らしい。

「ハイフンマイナス」と呼ばれている理由としては、コンピュータ上ではハイフンとマイナスを区別していないので、「ハイフンマイナス」という名称になっているそうだ。

まとめ

今回は、顧客からもらったExcelファイルをそのままインサートしたので、文字コードの違いに気づかなかった。

顧客に限らず他人が作成したファイルをデータベース上で扱うときは、ハイフンのようなややこしい文字列が含まれる場合は、文字コードのことを頭の中に入れておくと問題の早期発見につながるかもしれない。

参考資料

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?