shell脚本通过curl调用API时,变量值是中文时,需要编码。
在此记录一下我用的urlEncode编码和解码的方式(还有其他方式)。
编码:
src_text="今天天气不错"
src_url=`echo ${src_text} | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g'`
echo $src_url
输出结果:
%e4%bb%8a%e5%a4%a9%e5%a4%a9%e6%b0%94%e4%b8%8d%e9%94%99%0a
解码:
src_url="%e4%bb%8a%e5%a4%a9%e5%a4%a9%e6%b0%94%e4%b8%8d%e9%94%99%0a"
src_text=$(printf $(echo -n $src_url | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g'))
echo $src_text
输出结果:
今天天气不错