0

すべて。PHP 5.2.xでは関数urldecode()の動作が異なります。特にあなたは良い例としてウィキペディアでそれを見ることができるでしょう。

まず、その関数の結果がある私のページにはメタがあります:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

私が関数を使用しているより:

$url = urldecode($url);
echo $url;

$url変数の例を次に示します。

どうしたの?なんで?PHP Webサイトで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;
?>

前もって感謝します!

4

2 に答える 2

4

そのURLをどこで取得したかはわかりませんが、「Молодечно」の正しい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でエンコードされています

于 2011-07-10T09:30:04.147 に答える
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:  Молодечно
于 2011-07-10T09:33:04.370 に答える