2010年から2015年まではてなダイアリーで更新ししていたブログです。
現在は「パンクはいつも突然に」に統合して更新しています。

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