sirius2wpのCGIでSIRIUSのファイル名に日本語が使われている場合に、moveができない件。
CGIでのファイルmoveは諦めて手動で移動させることにすることにしたけれど、偶然に新たな発見。
画像比較ツールのコードを書くのにlistdirをちょっと調べたくて、osパッケージのリファレンスを開いてスクロールしてたら、fsencode()の記述が目に入ってきた。
「path-like な filename をファイルシステムのエンコーディングにエンコードします」って。
「ん?これって、昨日悩んでいた話?」って気になって、説明文ちょっと微妙でわかりにくかったけど、試したみた。
そしたら、ファイルシステム側の文字コードからUTF-8に変換することができ、listdir()の戻りにある日本語ファイル名をUTF-8として扱えるようになった。
これ、多分今までだったら何のことかわからず、なんとなくスルーしてたと思うのだけれど、昨日ハマって悩んでいたから、アンテナに引っかかったんだろうな。
listdirのことを調べようとリファレンスを開いたのは偶然だけれど、fsencodeのことが目に止まったのは悩んだおかげなんだろうな。
ということで、とりあえず日本語ファイル名をなんとかできるところまで実験したら、始めの目的に戻って画像比較ツールのプログラムを書くところまで。