forum.bitel.ru
http://forum.bitel.ru/

Проблемы с кодированием URL
http://forum.bitel.ru/viewtopic.php?f=8&t=2982
Страница 1 из 1

Автор:  borisk [ 06 окт 2009, 18:44 ]
Заголовок сообщения:  Проблемы с кодированием URL

Добрый день!

Пытаюсь запустить дилерский интерфейс. Шлюз nginx, настройки как в wiki. Но проблема в том, что у меня русские имена договоров, и при передаче их в URL похоже возникает ошибка декодирования. Передаю в URL номер договора ДФ-2, в логах вот такое:
10-06/18:39:50 INFO [http-8080-1] LoggingPrintStream - поз. 1 искомое значение %Р?Р?-2% дата 06.10.2009
То есть похоже что URL передается в UTF-8
В качестве клиента использую Firefox 3.5 для проверки.
Что можно сделать для исправления ситуации?

Автор:  skn [ 06 окт 2009, 20:00 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

для теста сделайте страницу в кодировке cp1251, а на ней сслыку с нужным url

Firefox кодирует запрос в кодировке страницы (вроде)....

Автор:  borisk [ 06 окт 2009, 20:22 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

Увы, не помогло. На сколько мне известно это какой-то новый стандарт де факто о том, что URL должны кодироваться в utf-8.

Автор:  borisk [ 06 окт 2009, 21:28 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

Вот, нашел:
When a new URI scheme defines a component that represents textual
data consisting of characters from the Universal Character Set [UCS],
the data should first be encoded as octets according to the UTF-8
character encoding [STD63];


http://tools.ietf.org/html/rfc3986
Пункт 2.5, последний абзац

Автор:  skn [ 06 окт 2009, 22:22 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

это все хорошо, но биллинг все запросы на данный момент пытается декодировать как "Cp2151"
соответственно и вам нужно отправить запрос использую urlencode в "cp1251"

надеюсь так пробовали????
Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=cp1251" />
</head>
<body>
<a href="http://yandex.ru/?title=ДФ-1">ссылка</a>
</body>
</html>


можете просто из строки браузера, замените ДФ-2 на %C4%D4-2

Автор:  borisk [ 07 окт 2009, 09:25 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

Конечно пробовал. Вариант как вы привели с html не работает, вариант с ручным кодированием работает.
Смысл понятен. Но, imho, в 5й версии стоит уже перейти на utf-8, чтоб было все по стандартам. Или хотя-бы ввести какой-нибудь ключ в какой кодировке воспринимать параметры запроса.

Автор:  skn [ 07 окт 2009, 14:59 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

borisk писал(а):
Конечно пробовал. Вариант как вы привели с html не работает, вариант с ручным кодированием работает.


страно, для ручного я коды получил как раз из этого html...

borisk писал(а):
Но, imho, в 5й версии стоит уже перейти на utf-8, чтоб было все по стандартам. Или хотя-бы ввести какой-нибудь ключ в какой кодировке воспринимать параметры запроса.


подумаем, но придеться во многих местах менять...

Автор:  snark [ 13 окт 2009, 23:36 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

м.б. чтобы менять поменьше стоит повесить на url какую нить paseUrl() которая будет ловить url и, если есть необходимость - конвертировать в уже работающую cp1251? тогда менять меньше придется = меньше шанса ошибиться

Автор:  Kazrarr [ 14 апр 2010, 12:06 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

Та же ситуация, только запросы идут в 1251 и биллинг их не принимает, в utf-8 проблем нет..

дилер говорит что работают с другим оператором с BGBilling'ом аналогично, и платежи проходят

Автор:  skn [ 14 апр 2010, 19:36 ]
Заголовок сообщения:  Re: Проблемы с кодированием URL

а у другого оператора номера договоров тоже на русском?

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/