FUSEのreaddirの問題解決

FUSEのreaddirで詰まった - MasaHeroの日記
解決編。

話は単純。ついつい文字列型としてUnicode型を使ってしまっていたがFUSE側はByte型で決め打ちしていたらしい。基本的に自動で変換されるはず*1だが、今回はなぜか変換されていなかったようなので、適当に"str()"で囲ってみたらうまくいった。何じゃそら。

これもPythonに文字列型が2種類あるのが原因。Python3で統一されたのだが、移行は当初の予想通りまったく進まず。オフィシャルに含まれるパッケージはともかくサードパーティ製は基本Python2.5どまり。2.6にすら移行し切れていない。気をつけよう。

*1:で、できないとかいってUnicodeDecode例外ないしUnicodeEncode例外を吐いて落ちる