沖永凌のブログ

株式会社ARTISAN, 現場Hub, SaaS開発, スタートアップ, CTO

なぜか時々Macでファイルを開けないことがあった

MacBookを使っていると、なぜか時々ファイルを開けない機会に遭遇していた。

Webアプリケーションでファイルを生成する機能を実装しており、その機能の検証時によく発生した。

デバッグに結構な時間を費やしてしまったので、わざわざ記事にしてみる。

 

結論から書くと、濁点・半濁点が含まれるファイルにおいてのみ発生することがわかった。昔からある有名な問題らしく、macOSのみ文字の正規化方法が異なることによって引き起こされるものだ。

詳しくはNFD・NFCのワードでググると出てくる。

濁点・半濁点を含む文字について1つの文字で扱うか2つの文字で扱うかが、OSによって異なっているのだ。

 

以下が原因特定までの道のりである。

1. ファイルの生成プログラムには問題ないことを確認

2. 生成時に利用しているライブラリには問題ないことを確認

3. 特定のファイルにのみ発生することを確認

4. ファイルの中身が関係ないことを確認

5. 特定のファイル名にのみ発生することを確認

6. 濁点・半濁点がファイル名に含まれている時にのみ発生することを確認

 

知っているか否かでデバッグ速度が大きく変わってしまう、典型的な問題だと思う。

NFDという概念を知らないことにより、調べるべきキーワードが思いつかない負のループに陥っていた。

なので、この記事のタイトルを「なぜか時々Macでファイルを開けないことがあった」という、NFDを知らない人が検索した時に引っかかりそうなものに設定した。