Jenkins主动选择参数不理解“@”符号并对其进行编码,如何在编译命令中将其作为参数传递时对其进行解码?

n3schb8v  于 2023-06-05  发布在  Jenkins
关注(0)|答案(1)|浏览(407)
pod7payv

pod7payv1#

似乎在参数之间传递值时,Active Choice使用HTML编码转换它,您可以使用以下代码查看所有将使用jenkins的/script端点更改的值:-

import static org.apache.commons.lang.StringEscapeUtils.escapeHtml
'!@£$%^&*()_+€-={}[]:"|;\'\\<>?,./~'.each {
    println "$it -> ${escapeHtml( it )}"
}
! -> !
@ -> @
£ -> &pound;
$ -> $
% -> %
^ -> ^
& -> &amp;
* -> *
( -> (
) -> )
_ -> _
+ -> +
€ -> &euro;
- -> -
= -> =
{ -> {
} -> }
[ -> [
] -> ]
: -> :
" -> &quot;
| -> |
; -> ;
' -> '
\ -> \
< -> &lt;
> -> &gt;
? -> ?
, -> ,
. -> .
/ -> /
~ -> ~

我使用org.apache.commons.lang.StringEscapeUtils.unescapeHtml类解决了这个问题。
您可以使用以下代码片段转换接收到的参数:-

import static org.apache.commons.lang.StringEscapeUtils.unescapeHtml
String unEscapedString = "a &amp; b"
String escapedHTML = unescapeHtml(unEscapedString)
print(escapedHTML)

这将打印代码所期望的a & B。

相关问题