使用awk printf来urldecode文本

Joh*_*han 8 awk printf urldecode busybox

我正在使用awkurldecode一些文字.

如果我将字符串编码到printf语句中,就像printf "%s", "\x3D"正确输出一样=.如果我将整个转义字符串作为变量,则相同.

但是,如果我只有,我3D怎么能追加\x所以printf会打印=而不是\x3D

我正在使用busybox awk 1.4.2ashshell.

Pau*_*ce. 2

由于您使用的是 ash 并且 Perl 不可用,我假设您可能没有gawk.

对我来说,使用gawkbusybox awk,你的第二个示例与第一个示例的工作方式相同(我从两个示例中得到“=”),除非我使用该选项(在这种情况下,我从两个--posix示例中得到“x3D” )。

如果我使用--non-decimal-dataor --traditionalwithgawk我会得到“=”。

您使用什么版本的 AWK(awknawkgawkbusybox - 和版本号)?

编辑:

您可以通过添加零将变量的字符串值强制转换为数字 1:

~/busybox/awk 'BEGIN { string="3D"; pre="0x"; hex=pre string; printf "%c", hex+0}'
Run Code Online (Sandbox Code Playgroud)