13:18 

Кодировкав URL

alhames
alhames.ru
На сайте используется кодировка UTF-8 и все действия происходят именно в ней.
Имеется URL: domen.com/мама/купила.htm?детям=корову, с которым возникло много неоднозначных ситуаций:
1) Вбиваю domen.com/мама/купила.htm?детям=корову во всех браузерах, делаю parse_url и urldecode - все ок. Весь запрос кодируется в utf-8
2) Заменяю «детям» на «detyam»: domen.com/мама/купила.htm?detyam=корову. Хром кодирует нормально, в IE, FF и Opera «корову» приходит в windows-1251.
Safari работает аналогично хрому, остальные браузеры не пробовал.
Никто не знает проверенных кроссбраузерных решений этой проблемы?

И еще вопрос: как можно прочесть хэш, стоящий после решетки ( domen/index.php#example ), на стороне сервера?

Комментарии
2011-09-06 в 14:16 

Kakou ECTb
жираф большой - ему видней
After silence that which comes nearest to expressing the inexpressible is music.
хэш - никак, только через ajax запрос или другие ухищрения. Как вариант - перед отправкой события прятать всё что после решётки в hidden input джсом. Ещё есть вариант если человек приходит с хешем, а нам нужно знать какой хеш без вариантов - мгновенны редирект через js вида url+&hash=blabla.

2011-09-06 в 14:16 

Kakou ECTb
жираф большой - ему видней
After silence that which comes nearest to expressing the inexpressible is music.
хэш - никак, только через ajax запрос или другие ухищрения. Как вариант - перед отправкой события прятать всё что после решётки в hidden input джсом. Ещё есть вариант если человек приходит с хешем, а нам нужно знать какой хеш без вариантов - мгновенны редирект через js вида url+&hash=blabla.

2011-09-06 в 18:29 

Никто не знает проверенных кроссбраузерных решений этой проблемы?
POST запросы, если уместны здесь.

2011-09-07 в 09:53 

alhames
alhames.ru
Пользователь вводит URL сразу с хэшем, поэтому если он не отправляется на сервер, то это как минимум дополнительный запрос - через ajax или редирект (

Касательно кодировки - то самый оптимальный вариант кажется только генерить значение параметров передаваемых после «?» сразу в urlencode - тогда кодирование проходит успешно.
Но если ссылки будут копировать (а последние браузеры вместо url-кодированного значения подставляют человеко-читаемую кириллицу - соответственно ссылка будет скопирована в таком виде), то не факт что автоматический urlencode-браузера догадается в какой кодировке ему переводить строку (
Чорт(

2011-09-07 в 17:28 

не факт что автоматический urlencode-браузера догадается в какой кодировке ему переводить строку
Значит это должен понимать скрипт, определять в какой кодировке и т.д. URI априори не приспособлен к юникоду, для этого нужен IRI, в котором юникод в крае угла, но я кроме названия о нём ничего не знаю.

С хешем думаю решений кроме JS нет и не может быть в принципе... Только вешать вывод контента на AJAX.

   

@web-программирование

главная