За последние 24 часа нас посетили 19487 программистов и 1633 робота. Сейчас ищут 1802 программиста ...

ASCII ответ в UTF-8

Тема в разделе "Прочие вопросы по PHP", создана пользователем Intrerio, 10 янв 2018.

  1. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    В продолжении темы о SOAP возникла некая непонятка. Наш проэкт работает в кодировке UTF-8. Возникла необходимость взаимодействия с другим сервисом методом SOAPю Получиаем ответ от сервиса в кодировке ASCII. Сразу замечу, не нужно писать что ASCII это тот же UTF-8, так как это не совсем так, потому что это лишь часть ASCII но в глобальном масштабе это разные кодировки. Что выходит далее. Мы накладываем ЭЦП на данный ответ и опять его бросаем на другой сервис в следствии чего нам приходит ошибка о том что данные отличаються от тех которые приходили ранее. Проблема именно в том что данные которые были получены в ASCII искажаются после наложения ЭЦП. Теперь собственно вопрос, каким образом можносделать конвертацию кодировки? Варианты типа:
    mb_convert_encoding
    iconv
    не справляються с задачей. Отвечу на вопрос как узнали кодировку, ответ: mb_detect_encoding.
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    не всегда корректно может определить кодировку
    ... и похоже что-то в вашем сервисе/функции которая накладывает ЭЦП. Может у нее есть (или нужно просто добавить) параметр - указывающий кодировку? Хотя я насколько помню - для ЭЦП вообще по барабану кодировки... она же побитово с алгоритмами рбаотает ... по сути хоть exe хоть bat файл...
     
  3. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    Все верно, для ЭЦП по барабану какая кодировка. Да тут как бы и ЭЦП ни при чем. Сам сервис чужой возвращает в другой кодировке. Я уже тоже начал думать что не ASCII, а что то другое. Вот теперь сижу и думаю как правильно определить кодировку в которой приходит строка