パソコンを使う人なら誰でも"ファイル名"というのを知ってるし、プログラマなら誰でもファイル名を使ったファイル操作は基礎として学んでいる。しかし、21世紀の今日ですら、時としてファイル名とはやっかいな問題となりうるのだ。 Python3では、文字列オブジェクトとして Unicode を全面採用し、基本的にはファイルの操作も Unicode によるファイル名で行うようになった。 Windows のように、ファイルシステムがUnicodeで構成されていれば問題はないが、Unix では Unicode だけでなく、日本語環境なら EUC-JP、ヨーロッパでは iso-8859-1 など、色々な文字コードによるファイル名が存在することになる。 たとえば、"a" という名前のファイルと "あ" という名前のファイルが置いてあるディレクトリがあるとする。この時、 "あ" のファイル名が UTF-8 で作