所有。 我在 PHP 5.2.x 中有不同的函数 urldecode()。特别是你可以用维基百科看到它作为很好的例子。
首先,我有该函数结果的页面有meta:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
比我正在使用功能:
$url = urldecode($url);
echo $url;
以下是$ url变量的示例:
http://ru.wikipedia.org/wiki/%D0%91%D1%80%D0%B5%D1%81%D1%82
它将被解码好。结果:“Брест”
http://ru.wikipedia.org/wiki/%CC%EE%EB%EE%E4%E5%F7%ED%EE
它不会很好转换。结果: ,但应该是“Молодечно”。
怎么了?为什么?我试图在PHP网站上使用function.urldecode.php中的所有函数,但它没有给我任何成功的结果
以下是在PHP中测试的代码的快速示例:
<?php
$url = array();
$url[] = "http://ru.wikipedia.org/wiki/%D0%91%D1%80%D0%B5%D1%81%D1%82";
$url[] = "http://ru.wikipedia.org/wiki/%CC%EE%EB%EE%E4%E5%F7%ED%EE";
foreach ($url as $value) :
echo urldecode($value) . "<br/>";
endforeach;
?>
提前致谢!
答案 0 :(得分:4)
不知道你在哪里拿到了这个网址,但是“Молодечно”的正确的utf-8是:
$url = 'http://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BB%D0%BE%D0%B4%D0%B5%D1%87%D0%BD%D0%BE';
echo urldecode($url);
你的那个是cp1251编码
答案 1 :(得分:1)
正如所说的zerkms,以下url是cp1251编码的。要将其转换为UTF-8,只需使用:
$url = 'http://ru.wikipedia.org/wiki/%CC%EE%EB%EE%E4%E5%F7%ED%EE';
echo iconv("Windows-1251","UTF-8",urldecode($url));
//output: Молодечно