如果我有这个PHP字符串:
$string = '\\x27\\x22';
如何将其解码为'"
?
答案 0 :(得分:4)
正则表达式可以帮到你:
$out = preg_replace_callback(
"(\\\\x([0-9a-f]{2}))i",
function($a) {return chr(hexdec($a[1]));},
$string
);
答案 1 :(得分:0)
您无需解码它。只做str_replace('\\x27', "'", $str);
。如果您的'"
只是示例,请注意您有可重复的模式\\xAA
,其中x
表示十六进制表示法,AA
是十六进制值本身,因此每个{{1}表示单字节,\\xAA
表示0到0xFF。因此,您可以使用正则表达式或者只是在字符串上以任何其他方式行走,提取这些AA
值并将其转换为AA
以对应的characted并粘贴结果字符串。
答案 2 :(得分:0)
$out = preg_replace_callback(
"(\\\\x([0-9a-f]{2}))i",
function($a) {return '\u00'.bin2hex(hex2bin($a[1]));},
$string
);
将值从ascii转换为unicode后,确定没问题。