コマンドラインでURLをエンコード・デコードする方法

URLエンコード

  • perl
$ echo 'http://tech.octaviadata.com/tags/コマンドライン' | perl -MURI::Escape -ne 'chomp;print uri_escape($_),"\n"'
http%3A%2F%2Ftech.octaviadata.com%2Ftags%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3
  • curl
$ curl -s -w '%{url_effective}\n' --data-urlencode 'http://tech.octaviadata.com/tags/コマンドライン' -G '' | sed -e  's/^\/?//'
http%3A%2F%2Ftech.octaviadata.com%2Ftags%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3
  • nkf
$ echo 'http://tech.octaviadata.com/tags/コマンドライン' | nkf -WMQ | sed 's/=$//g' | tr -d '\n' | tr = %
http%3A%2F%2Ftech%2Eoctaviadata%2Ecom%2Ftags%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3

 

URLデコード

  • nkf
$ echo http%3A%2F%2Ftech.octaviadata.com%2Ftags%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3 | nkf --url-input
http://tech.octaviadata.com/tags/コマンドライン
  • sed
$ echo http%3A%2F%2Ftech.octaviadata.com%2Ftags%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3 | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
http://tech.octaviadata.com/tags/コマンドライン
  • perl
$ echo http%3A%2F%2Ftech.octaviadata.com%2Ftags%2F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3 | perl -pe 's/%([0-9a-f]{2})/sprintf("%s", pack("H2",$1))/eig'
http://tech.octaviadata.com/tags/コマンドライン