PHP中的后字符串解码
PHP中是否有任何内置函数需要解码 przysi%25C4%2599gam%2520s%25C5%2582u%25C5%25BCy%25C4%2587 进入 przysięgam służyć ?-解码URL编码字符串 但我认为这对多字节字符串不起作用。请参阅手册页上的注释,了解可能的用户区解决方法,以及对URL编码字符串进行解码 但我认为这对多字节字符串不起作用。请参阅手册页上的注释,了解可能的用户区解决方法,以及您是否尝试过以下方法:PHP中的后字符串解码,php,decoding,Php,Decoding,PHP中是否有任何内置函数需要解码 przysi%25C4%2599gam%2520s%25C5%2582u%25C5%25BCy%25C4%2587 进入 przysięgam służyć ?-解码URL编码字符串 但我认为这对多字节字符串不起作用。请参阅手册页上的注释,了解可能的用户区解决方法,以及对URL编码字符串进行解码 但我认为这对多字节字符串不起作用。请参阅手册页上的注释,了解可能的用户区解决方法,以及您是否尝试过以下方法: function utf8_urldecode(
function utf8_urldecode($str) {
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
return html_entity_decode($str,null,'UTF-8');;
}
取自
编辑:您的初始字符串被弄乱了。你把它编码了两次吗?因为utf8_urldecode(utf8_urldecode($encoded string))给出了正确的结果。您是否尝试过以下方法:
function utf8_urldecode($str) {
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
return html_entity_decode($str,null,'UTF-8');;
}
取自
编辑:您的初始字符串被弄乱了。你把它编码了两次吗?因为utf8_urldecode(utf8_urldecode($encoded string))给出了正确的结果。我猜您的urldecode和多字节字符有问题。Urldecode只能解码8位字符,并且您的字符串包含多字节字符
检查以获得一些解决方案。我猜您在urldecode和多字节字符方面存在问题。Urldecode只能解码8位字符,并且您的字符串包含多字节字符
检查一些解决方案。好的,戈登和马诺斯,你们都是对的(也都是错的;) 这只是普通的“urldecode”,但应用了两次
好吧,戈登和马诺斯,你们都对(也都错;) 这只是普通的“urldecode”,但应用了两次
消极的Urldecode在这个问题上失败得很厉害,因为它只解码%###个字符。否定。Urldecode在我的机器上失败得很厉害,因为它只解码%字符。在我的机器上,give
przysi%C4%99gam%20s%C5%82u%C5%BCy%C4%87
。giveprzysi%C4%99gam%20s%C5%82u%C5%BCy%C4%87
在我的机器上。你确定生成这些字符串的程序知道它在做什么吗?如果它是UTF-8 url编码的字符串,它应该读取przysi%25%C4%25%99gam…
,也就是说,两个字节都是url编码的。您确定生成这些字符串的程序知道它在做什么吗?如果它是一个UTF-8 url编码的字符串,它应该读przysi%25%C4%25%99gam…
,也就是说,两个字节都是url编码的。这很有趣,因为该字符串是使用encodeURLEntity()发布的一个普通JS脚本--不知道为什么这些东西会被编码两次这很有趣,因为该字符串是使用encodeURLEntity()发布的一个凡人JS脚本——不知道为什么会对该字符串进行两次编码