Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кодировка в URL, как декодировать русские символы в URL 
:(
    Опции темы
cia
Дата 6.4.2007, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: 4
Всего: 4



Здрасти.
Весь вечер пирился и что-то не доходит...

Дело в том, что нужно передать в URL русские буквы, например, прекрасное слово "цветы".
Вот как его кодирует браузер: %D1%86%D0%B2%D0%B5%D1%82%D1%8B и это правильно и это работает.
А вот как его пытаюсь кодировать я: C3%A6%C3%92%C3%95%C3%A2%C3%AB и это уже что-то другое и получается вот из этого:
Код

$k='цветы';
$k=utf8_encode($k);
$k=urlencode($k);

Я работаю с win1251, как понимаю, (хотя не пробовал) проблему можно решить если перевести страницу в UTF-8, но вот что-то совсем не хочется.
Тем не менее что нужно сделать?
Прошу подсказать.
PM WWW ICQ   Вверх
mishaSL
Дата 6.4.2007, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(cia @  6.4.2007,  07:25 Найти цитируемый пост)
Я работаю с win1251, как понимаю

Зачем вы тогда в uft-8 приводите.
Вот пример как точно работает:
Код

<?php
$text = urldecode($_GET['text']);
print $text;
?>
<br /><a href="?text=<?php print urlencode('мир');?>">Link</a>


Сохрани страницу и кликни по ссылке smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SelenIT
Дата 6.4.2007, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



mishaSL, а без явного urldecode разве не точно работает?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
mishaSL
Дата 6.4.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(SelenIT @  6.4.2007,  08:01 Найти цитируемый пост)
mishaSL, а без явного urldecode разве не точно работает? 

В 99% также, но чтобы не допускать не нужных ошибок, то лучше использовать urldecode().
Пример:
В строке поиска, который работает через метод _GET, пользователь ввел поисковый запрос "&quot;" - пользователь именно ищет информацию о этом спецсимвол. Если мы не будет пользоваться urldecode(), то найдем мы ему инфу по поисковой фразе " (кавычка), что заведомо неправильно.
Вот пример - http://www.google.ru/search?hl=ru&q=%2...+Google&lr= 
Нам же при поиске не кавычку отдают в ответ smile 

Это сообщение отредактировал(а) mishaSL - 6.4.2007, 08:23


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
SelenIT
Дата 6.4.2007, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Сорри, не улавливаю связи между urldecode и htmlentities... Каки образом &quot; при обычной передаче гетом превратится в кавычку, кроме как при выводе в HTML, и как urldecode сможет этому помешать?

И, кстати, вдогонку: как быть, если юзер ищет '%25' (именно последовательность, а не голый знак процента - напр. так)?

Это сообщение отредактировал(а) SelenIT - 6.4.2007, 09:06


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
cia
Дата 6.4.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: 4
Всего: 4



Господа, я не совсем точно поставил вопрс. Он в следующем: как из "цветы" получить %D1%86%D0%B2%D0%B5%D1%82%D1%8B.
Дело в том, что этот запрос формируется cURL и отправляется Google, который понимает его только в юникоде.
PM WWW ICQ   Вверх
SelenIT
Дата 6.4.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



cia, что есть utf8_encode? А стандартной iconv на сервере нет?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
cia
Дата 6.4.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: 4
Всего: 4



Цитата(SelenIT @  6.4.2007,  09:15 Найти цитируемый пост)
 что есть utf8_encode?

Код

utf8_encode - кодирует строку ISO-8859-1 в UTF-8

Переводить в iso из win1251 предварительно тоже пытался.


Цитата(SelenIT @  6.4.2007,  09:15 Найти цитируемый пост)
 А стандартной iconv на сервере нет?


В том то и дело, что нет. Саппорту отписал - жду ответа. Думаю, включит. Эта функция конвертит правильно.
Я сразу решил воспользоваться другой функцией, раз iconv нет и началась морока  smile .
Просто мне уже интересно почему utf8_encode конвертит как-то иначе.
PM WWW ICQ   Вверх
SelenIT
Дата 6.4.2007, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



cia, ну Вы даете... перекодируете в кодировку, где вообще нет кириллицы, и еще удивляетесь...

Посмотрите здесь, вариант 3 часть 2. Должно помочь...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0771 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.