Javascript \x 转义
Javascript \x escaping
我看到其他一些程序也有类似这样的内容:
var string = '\x32\x20\x60\x78\x6e\x7a\x9c\x89';
而且我不得不尝试 fiddle 使用数字和字母来找到我想要显示的文本。
我想知道是否有一个函数可以找到字符串的 \x
转义符,例如 JS 中的 string.toUpperCase()
。我正在使用 processingJS,但我可以使用其他编程语言来查找 \x
.
的 ASCII
如果您有要转义的字符串,可以使用 String.prototype.charCodeAt()
如果你有带转义的代码,你可以只计算它们以获得原始字符串。如果它是一个带有文字转义的字符串,你可以使用 String.fromCharCode()
如果你有 '\x32\x20\x60\x78\x6e\x7a\x9c\x89'
并且想要 "2 `xnz"
那么
'\x32\x20\x60\x78\x6e\x7a\x9c\x89' == "2 `xnz"
如果你有 '\x32\x20\x60\x78\x6e\x7a\x9c\x89'
这是一个值为 \x32\x20\x60\x78\x6e\x7a\x9c\x89
的文字字符串,那么你可以通过将每对十六进制数字的十进制值传递给 String.prototype.fromCharCode()
'\x32\x20\x60\x78\x6e\x7a\x9c\x89'.replace(/\x([0-9a-f]{2})/ig, function(_, pair) {
return String.fromCharCode(parseInt(pair, 16));
})
或者,如果您可以确定输入的安全性并且性能不重要,eval
是一个选项1.
eval('"\x32\x20\x60\x78\x6e\x7a\x9c\x89"')
请注意 "
嵌套在输入字符串周围的 '
中。
如果您知道它是一个程序,并且它来自受信任的来源,您可以直接 eval
字符串,这不会给您 ASCII,但会执行程序本身。
eval('\x32\x20\x60\x78\x6e\x7a\x9c\x89')
请注意,您提供的输入不是程序,eval 调用失败。
如果你有 "2 `xnz"
并且想要 '\x32\x20\x60\x78\x6e\x7a\x9c\x89'
那么
"2 `xnz".split('').map(function(e) {
return '\x' + e.charCodeAt(0).toString(16);
}).join('')
我看到其他一些程序也有类似这样的内容:
var string = '\x32\x20\x60\x78\x6e\x7a\x9c\x89';
而且我不得不尝试 fiddle 使用数字和字母来找到我想要显示的文本。
我想知道是否有一个函数可以找到字符串的 \x
转义符,例如 JS 中的 string.toUpperCase()
。我正在使用 processingJS,但我可以使用其他编程语言来查找 \x
.
如果您有要转义的字符串,可以使用 String.prototype.charCodeAt()
如果你有带转义的代码,你可以只计算它们以获得原始字符串。如果它是一个带有文字转义的字符串,你可以使用 String.fromCharCode()
如果你有
'\x32\x20\x60\x78\x6e\x7a\x9c\x89'
并且想要"2 `xnz"
那么'\x32\x20\x60\x78\x6e\x7a\x9c\x89' == "2 `xnz"
如果你有
'\x32\x20\x60\x78\x6e\x7a\x9c\x89'
这是一个值为\x32\x20\x60\x78\x6e\x7a\x9c\x89
的文字字符串,那么你可以通过将每对十六进制数字的十进制值传递给String.prototype.fromCharCode()
'\x32\x20\x60\x78\x6e\x7a\x9c\x89'.replace(/\x([0-9a-f]{2})/ig, function(_, pair) { return String.fromCharCode(parseInt(pair, 16)); })
或者,如果您可以确定输入的安全性并且性能不重要,
eval
是一个选项1.eval('"\x32\x20\x60\x78\x6e\x7a\x9c\x89"')
请注意
"
嵌套在输入字符串周围的'
中。如果您知道它是一个程序,并且它来自受信任的来源,您可以直接
eval
字符串,这不会给您 ASCII,但会执行程序本身。eval('\x32\x20\x60\x78\x6e\x7a\x9c\x89')
请注意,您提供的输入不是程序,eval 调用失败。
如果你有
"2 `xnz"
并且想要'\x32\x20\x60\x78\x6e\x7a\x9c\x89'
那么"2 `xnz".split('').map(function(e) { return '\x' + e.charCodeAt(0).toString(16); }).join('')