本サイト/記事は移転しました。

約10秒後にリダイレクトします。

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を使っていないときはコマンドラインを``で囲って。