Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Опять кодировка url


Автор: slang 29.9.2006, 10:33
вот такая строка url
http://www.otmmp.omsk.info/myphp/431.php?res=yes|2|yes|2|yes|2|yes|2|yes|2|2|%D0%B2%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9
ну ни как не получается получить из
%D0%B2%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9
русские символы
пробовал разные функции.
url получаю из Excel
может кто подскажет?

Автор: Garret 29.9.2006, 13:34
urldecode

Автор: slang 29.9.2006, 14:06
Garret, а сам-то пробовал, что получится после urldecode из этой строки?
справочниками пользоваться тоже умею.

Автор: Kefir 29.9.2006, 15:08
slang, а ты пробовал? всё нормально деколится. читать http://ee.php.net/urldecode. или ещё rawurldecode, хотя различия в них небольшие.

пишем
Код

<?php

$str = "%D0%B2%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9";
echo urldecode($str);

?>

и получаем "виталий".

Автор: slang 29.9.2006, 20:35
Kefir, я то пробовал, и почему то 
Код

<?
print "<BR>";
print $_GET['res'];
$mes = explode("|",$_GET['res']);

foreach ($mes as $key => $value){
        print ("<BR>key=$key, value=$value - ". urldecode ($value));
    }    
print "<BR>" . urldecode($_GET['res']);

print "<BR><a href='http://www.otmmp.omsk.info/myphp/431.php?res=yes|2|yes|2|yes|2|yes|2|yes|2|2|%D0%B2%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9'>Link</a>";

print "<BR>дополнение с форума...";
$str = "%D0%B2%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9";
echo urldecode($str);
?>

выдает совсем другой результат...

Автор: Kefir 30.9.2006, 10:01
slang, а "совсем другой" это совсем какой?

Добавлено @ 10:03 
вообще, скинь сюда что тебе твой скрипт выводит в итоге (который ты привёл в своём последнем мсге).

Добавлено @ 10:12 
slang, гм. ок. всё понятно. в общем, зайди по своей ссылке (из твоего кода) и переключи кодировку страницы в utf-8. И увидишь, что urldecode делает своё дело на отлично - просто у тебя по дефолту стоит cp1251 по ходу. Пропиши кодировку сраницы а ля
Код

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

, сохрани сам скрипт в кодировке utf-8 и попробуй ешё разок  smile 

Автор: Deg 22.11.2006, 12:08
просто urldecode пашет с кодировками ascii и utf-8,
а для 1251(точнее для ANSI) пришлось делать свое геморойное, так как мозила 4.0(IE) и мозила 5.0(firefox) OO (Opera) возвращыют разные результаты на русские символы...

Автор: Всемогущий 15.4.2007, 07:24
для тех кто в будущем будет использовать поиск

Код

<?php
   echo  iconv("UTF-8","WINDOWS-1251" , urldecode('%D0%95%D0%B4%D0%B8%D0%BD%D0%B0%D1%8F%20%D1%80%D0%BE%D1%81%D1%81%D0%B8%D1%8F'));
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)