Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.01.2011, 21:34
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Кодирование URL параметров, как правильно интерпретировать плюс?

Я тут с пеной у рта распинаюсь доказывая, что + - валидный символ в параметрах (том, что следует за "?" в URL), а мне люди пишущие на Питоне так же с пеной у рта доказывают, что "+" в параметрах нужно интерпретировать как пробел.
Я перечитал все RFC которые смог найти, доступную документацию и... не могу прийти к однозначному мнению...
Если окажется, что я не прав, то это баг URLVariables, если я прав, то это значит писать очердной костыль...
__________________
Hell is the possibility of sanity

Старый 19.01.2011, 22:04
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 2  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Исторически сложилось, что плюс в URL заменяет пробел.
То есть script.pl?var=1+2 означает передачу параметра var со значением "1 2".
Вроде так. А чтобы передать "1+2" нужно написать script.pl?var=1%2B2

Старый 19.01.2011, 22:06
ps_spectre вне форума Посмотреть профиль Отправить личное сообщение для ps_spectre Найти все сообщения от ps_spectre
  № 3  
Ответить с цитированием
ps_spectre
 
Аватар для ps_spectre

блогер
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 156
Записей в блоге: 4
Отправить сообщение для ps_spectre с помощью Skype™
ага, и википедия об этом говорит
Query_string
Цитата:
* Letters (A-Z and a-z), numbers (0-9) and the characters '.','-','~' and '_' are left as-is
* SPACE is encoded as '+'
* All other characters are encoded as %FF hex representation with any non-ASCII characters first encoded as UTF-8 (or other specified encoding)
вот тут написано rfc3986#page-12

Цитата:
reserved = gen-delims / sub-delims

gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"

sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
Цитата:
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"


Последний раз редактировалось ps_spectre; 19.01.2011 в 22:13.
Старый 19.01.2011, 22:29
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Все не так просто: http://bytes.com/topic/php/answers/5...s-rawurlencode
вот тут есть дискуссия еще по этому поводу. А дальше еще и вот это: http://lists.w3.org/Archives/Public/...2May/0032.html
И как бы я не могу найти, какое было постановление в итоге
Да и URLVariables согласен принимать плюсы в качестве пробелов, но никогда так не выводит параметры.

Да, еще такой непрозрачный момент:
Код AS3:
var variables:URLVariables = new URLVariables("a=1+2");
variables.b = "1+2";
дадут в итоге разный результат. Было немного непредсказуемо для меня...
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 19.01.2011 в 22:43.
Старый 19.01.2011, 22:39
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 5  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
На сколько я понял, использование плюса для обозначения пробелам это дань истории, и не входит в официальную спецификацию. По-этому "+" и "%20" преобразуются в пробел, а обратное преобразование - в меру желания следовать rfc.

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:27.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.