BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 04:41

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
 Заголовок сообщения: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 16:21 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
БД в кодировке cp1251.
В версии 5.2.
Код:
XX.XX.XX.XX E3762D44DC1BBFCF4D2B6639AC0E134E [14/Mar/2017:16:28:39 +0300] 0.012 200 222 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=1936%C8%2F12&accurate=true HTTP/1.1" contract_title_1=1936И/12&accurate=true&action=ContractFind&mid=10&

В версии 6.2
Код:
XX.XX.XX.XX 745CB3ECFD34FB698DEBE2299C1294FE [15/Mar/2017:12:53:48 +0300] 0.016 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=917Ñ/12&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=917Ñ/12&accurate=true&
XX.XX.XX.XX 0C709D93D1F083EB78EE19E0093173C0 [15/Mar/2017:12:10:53 +0300] 0.014 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=197%C8%2F11&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=197È/11&accurate=true&


Проблемные договора имеют вид XXX И/ ГОД, так вот с этим И проблемы.
В 5.2. %C8%2F нормально интерпетировалось в И/
Локаль не менялась.
Код:
locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8

Код:
Информация о версии:

  Клиент: вер. 6.2.854 / 22.02.2017 19:04:14
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_71
  Сервер: вер. 6.2.1163 / 10.03.2017 18:11:08
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_121
  Сервер:
    os: Linux amd64, 3.2.0-4-amd64
    java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_121
    jre home: /usr/lib/jvm/jdk-8-oracle-x64/jre
    default tz: 15.03.2017 13:13 MSK +0300 (Europe/Moscow)
    db time: master: 15.03.2017 13:13 MSK, slave@2: 15.03.2017 13:13 MSK
    db charset: connection: cp1251(cp1251_general_ci), database: cp1251(cp1251_general_ci)
    locale: ru_RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 18:10 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
а страница idealer в какой кодировке приходит? можете в браузере показать?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 18:17 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
<?xml version="1.0" encoding="UTF-8"?>
<data error_code="3" status="error">Отсутствуют и/или неправильные параметры</data>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 19:23 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
Код:
SEND: GET http://xx.xx.xx.xx:8282/bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=917%E0&accurate=true HTTP/1.1
RESV: Server: Apache-Coyote/1.1
RESV: Set-Cookie: JSESSIONID=25FDCA902DCCB946071A18BED14B902D; Path=/; HttpOnly
RESV: Cache-control: no-cache, no-store, must-revalidate
RESV: Last-Modified: Thu, 01 Jan 1970 00:00:01 GMT
RESV: Expires: Thu, 01 Jan 1970 00:00:01 GMT
RESV: Content-Type: text/xml;charset=UTF-8
RESV: Transfer-Encoding: chunked
RESV: Date: Wed, 15 Mar 2017 13:14:33 GMT
RESV:
<?xml version="1.0" encoding="UTF-8"?>
<data error_code="8" status="error">Договор не найден</data>


Цитата:
XX.XX.XX.XX 3E2BDB32C7A4544A82C04ACDDD029011 [15/Mar/2017:16:22:20 +0300] 0.011 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=917%F0%2F12&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=917ð/12&accurate=true&


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 20:10 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
На тестовой машине все начало работать после того как раскомментил в webroot/WEB-INF/web.xml
следующие блоки:
Код:
       <!--Убрано в версии 5.3, пока оставить, возможно, отдельным модулям надо будет перенести эти настройки. -->
        <filter>
                <filter-name>SetCharacterEncodingFilter</filter-name>
                <filter-class>ru.bitel.common.server.filters.SetCharacterEncodingFilter</filter-class>
                <init-param>
                        <param-name>encoding</param-name>
                        <param-value>Cp1251</param-value>
                </init-param>
                <init-param>
                        <param-name>ignore</param-name>
                        <param-value>false</param-value>
                </init-param>
        </filter>

Код:
        <!--Убрано в версии 5.3, пока оставить, возможно, отдельным модулям надо будет перенести эти настройки. -->
        <filter-mapping>
                <filter-name>SetCharacterEncodingFilter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>



Насколько корректно будет работать при такой конфигурации биллинг?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 20:19 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Это и хотел предложить попробовать, 1) вернуть фильтр обратно 2) попробовать повесить какой есть.
Нет, на все (/*) вешать не надо! Вот так попробуйте сначала UTF-ный, как на остальных:

Код:
<filter-mapping>
      <filter-name>SetCharacterEncodingFilterUTF8</filter-name>
      <url-pattern>/idealer</url-pattern>
</filter-mapping>


Если не получится вот такой повесьте тогда, это то что вы написали, только на конкретный сервлет /idealer:

Код:
<filter-mapping>
      <filter-name>SetCharacterEncodingFilter</filter-name>
      <url-pattern>/idealer</url-pattern>
</filter-mapping>


Если получится то или иное - сделаем искаропки этот фильтр, потмоу что непонятно почему так получается.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 20:36 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
работает с
Код:
<filter-mapping>
      <filter-name>SetCharacterEncodingFilter</filter-name>
      <url-pattern>/idealer</url-pattern>
</filter-mapping>


Фильтр SetCharacterEncodingFilterUTF8 нам не подходит по причине php urlencode на стороне дилера,

Т.е. я это спокойно оставляю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 20:49 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Хм, а причём тут php urlencode, поясните? Фильтр лишь проставляет для реквеста входящего кодировку. Вы в смысле снаружи где-то дёргаете это всё?
С SetCharacterEncodingFilterUTF8 точно не работает? А в нашей сборке должно с utf-8 быть.
Вообще это как-то неправильно, надо починить же нормально. В общем, всё уберите пока как было и обновите вашу 6.2, проверьте. Ошибка была отловлена и фильтр проставлен в коде, у нас протестировано - всё кажется корректно работает.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 20:49 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
обновление будет в течение 15 минут

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 20:57 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
И/ приходит к нам как %C8%2F
в билде 1164
интерпретируется как
10.11.12.243 6C4360493A946551A3E391F95330C07A [15/Mar/2017:17:54:15 +0300] 0.020 200 125 "GET /bgbilling/idealer?mid=10&action=ContractFind&contract_title_1=102%C8%2F10&accurate=true HTTP/1.1" mid=10&action=ContractFind&contract_title_1=102�/10&accurate=true&


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 22:03 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
так вы всё же поясните: откуда приходит то? извне откуда-то? из страницы idealer так не должно приходить. оттуда приходило в utf-8 даже раньше, просто до этого без фильтра оно билось при разборе в latin1 (вероятно).
вы показываете не как интерпретируется, а что залогировалось же, это от локали зависит сервера
а вам приходит в cp1251 откуда-то. ну вам придётся наверно руками вешать всё же фильтры, потому что починка касается работы стандартного idealer, а там везде utf-8 и меняться это не будет

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 15 мар 2017, 22:06 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
а, да, раньше когда-то было 1251 всё верно, и урлы закодированные такими были
вам тогда надо явно encoding слать из вашей сторонней системы вместе с запросом (фильтр работает только когда явно со стороны не задано как раз) или всё же перекодировать урл чтобы он кодировался в utf-8. Но возможно поможет прописывание фильтра как вы сделали, но в таком случае будет висеть два фильтра, не уверен что это нормально сработает, проверьте если нормально всё , то оставьте

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 16 мар 2017, 13:04 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
Фильтр на /idealer cp1251 не срабатывает. Переделали encoding на UTF-8. Кстати вроде бы баг еще один нашел, если в "Новом менеджере платежей" поискать за определенный период платежи, то они выведутся например с 15.03-15.03, если затем выбрать 16.03-16.03 то поиск выдаст пустой результат, закрываем-открываем менеджер, поиск начинает работать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 16 мар 2017, 17:53 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
После обновления фильтры вообще уберите, они устанавливаются в коде и должно без изменения web.xml всё работать, проверяли? Но снаружи если кодируете в cp1251 то надо явно ещё кодировку ставить в заголовках (в Content-Type например), но это так себе способ.

Новый менеджер платежей - это что и где именно

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 16 мар 2017, 20:29 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
Да именно без изменения с UTF8 все работает. Новый менеджер платежей это в модуле "Карты и удаленные платежи"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 17 мар 2017, 00:01 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
что то не воспроизводится, может это как то связано со страницами
типа за 15 число две страницы и перейдя на вторую страницу, сменив дату, платежей за 16 не будет если они все уместились на 1 странице


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 17 мар 2017, 01:01 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
не совсем так.
Был диапазон 16.03- ПУСТО были данные
диапазон 15-15 есть данные
16-16 - нет данных


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 17 мар 2017, 01:18 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
не получается повторить
нужны логи запросов от клиента биллинга
+ содержимое БД


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодировка запросов idealer
СообщениеДобавлено: 17 мар 2017, 01:26 
Не в сети
Клиент

Зарегистрирован: 21 май 2009, 15:18
Сообщения: 72
Карма: 0
сейчас проверил с видовой машины, на ней установлена ява 1.8.0_121 все ок. На проблемном клиенте 1.8.0_71. Видимо в этом дело.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.644s | 56 Queries | GZIP : On ]