nautilus-actionsが日本語ファイル名を処理できない件
nautilus-actionsのスクリプトが動作しない時がある。どうやら日本語ファイル名を処理できないようだ。検証してみると2バイト文字は%と2桁のHEXという形に変換されているようだ。
そこで「あ」を変換してできる「%E3%81%82」をgoogle検索してみた。どうやらこれはUTF-8コードの文字をエンコードしたもので、検索サイトなどで検索したときに使われる変換と同じらしい。
となるとあとは簡単。phpスクリプトの場合はurldecode関数に入れて戻してやればいいい。シェルスクリプトに対応するため、以下のようなphpスクリプト(ファイル名urldecode)を用意。
#!/usr/bin/php <?php array_shift($argv); $argv_str = implode(" ",$argv); echo urldecode($argv_str); ?>
これを適当なところでファイル名と置き換えればいい。たとえば
#!/usr/bin/zsh #echo -n $* | pclip urldecode $* | pclip
みたいな感じで。echoを使っていないときはコマンドラインを``で囲って。