ダッシュで奪取

ゲーム、読書、人生

コマンドラインでパーセントエンコード・デコードしたい

環境

nkf コマンドをインストール

$ brew install nkf
# インストールできたか確認
$ nkf --version

Network Kanji Filter Version 2.1.5 (2018-12-15) 
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.

エンコード

text='ほ👺👪🍎げ'
echo $text | nkf -WwMQ | tr = %
%E3%81%BB%F0%9F%91%BA%F0%9F%91%AA%F0%9F%8D%8E%E3%81%92

文字コードのオプションがないと、絵文字の入力で文字化けする

  • W … 入力を UTF-8 とする
  • w … 出力を UTF-8 とする
  • MQ … quoted-printable エンコード
  • URL として使えるように、quoted-printable エンコードの結果 = になった部分を tr で % に変換している

デコード

$ text='%E3%81%BB%F0%9F%91%BA%F0%9F%91%AA%F0%9F%8D%8E%E3%81%92'
$ echo $text | nkf --url-input
ほ👺👪🍎げ

参考URL