最近携わっているPHPのプロジェクトでは、プログラムを日本語で書いています。クラス名・変数名はもちろんファイル名も日本語です。(なぜ日本語で書くことにしたのか、そこらへんのモチベーションについては別記事にまとめたい) このプロジェクトは開発環境がMac、プロダクション環境がLinuxなのですが、日本語ファイル名のPHPがオートロードされないなどの問題が発生しました。しらべたところ、MacのファイルシステムとLinuxのファイルシステムでUnicodeの規格が違うのが原因でした。詳しくは、「紹介マニアどらふと版: Mac OS X におけるファイル名に関するメモ(NFC, NFD等)」の記事が参考になります。 簡単にファイルシステムの違いを説明すると、 Mac: NFDという規格。濁点半濁点などバラしている(正規化)。「だ」は「た」「゛」の6バイトになる Linux: NFCという規格。濁点