4
4

More than 5 years have passed since last update.

ShellスクリプトでURIエスケープするときの不思議な現象

Last updated at Posted at 2014-10-29

よくシェルスクリプトで、文字列をURIエスケープするときの技としてnkfとtr = %で変換する方法が案内されてますが、文字列によってはおかしくなることがあるみたい。

シェルスクリプト

#utf8で書いてます。
w="アイウエオカキクケ"
enc=`echo "${w}" | nkf -wMQ | tr = % | tr -d "\n"`
echo "nkf  [${enc}]"
enc=`echo "${w}" | perl -nle '{use utf8;use Encode;use URI::Escape;print uri_escape($_)}'`
echo "perl [${enc}]"

出力

nkf  [%E3%82%A2%E3%82%A4%E3%82%A6%E3%82%A8%E3%82%AA%E3%82%AB%E3%82%AD%E3%82%AF%%E3%82%B1]
perl [%E3%82%A2%E3%82%A4%E3%82%A6%E3%82%A8%E3%82%AA%E3%82%AB%E3%82%AD%E3%82%AF%E3%82%B1]

なんで%が1個多くなるんでしょう...?

4
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4