PHP中的URL解码

2021/01/18 01:41 · php ·  · 0评论

我正在尝试使用PHP的urldecode函数解码此URL字符串:

urldecode("Ant%C3%B4nio+Carlos+Jobim");

这应该输出...

'Antônio Carlos Jobim'

...但是相反

'Antônio Carlos Jobim'

我已经在基于JS的在线解码器中成功测试了该字符串,但是似乎无法在服务器端执行此操作。有任何想法吗?

您的字符串也是UTF-8编码的。这将起作用:

echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));

输出:“AntônioCarlos Jobim”。

实际上,您将获得所需的输出,但不会将其解释为UTF-8。如果这是在HTTP应用程序上,则应发送标头或元标记(或两者),以告知客户端使用UTF-8。

编辑:例如:

// replace text/html with the content type you're using
header('Content-Type: text/html; charset=UTF-8');

当我做

<?php
echo urldecode("Ant%C3%B4nio+Carlos+Jobim");
?>

它可以正确显示在我的浏览器中

安东尼奥·卡洛斯·乔宾

我已经用XAMPP测试过

htmlenteties在回显页面之前是否还在使用当我刚刚测试您的代码时,它只适合urldecode("Ant%C3%B4nio+Carlos+Jobim");部分使用,但是当我运行它时,htmlentities得到的输出与您相同。

UTF-8字符以及PHP如何处理该htmlentities函数似乎是一个问题

另一个选择是:

<?php
$smthing = 'http%3A%2F%2Fmysite.com';
$smthing = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($smthing)); 
$smthing = html_entity_decode($smthing,null,'UTF-8');
echo $smthing;
?>

输出变为: http://mysite.com

首先,您必须在urldecoder函数“ urldecoder()”中进行解码,然后使用utf解码器函数“ utf_decoder()”

本文地址:http://php.askforanswer.com/phpzhongdeurljiema.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!