В продолжении темы о SOAP возникла некая непонятка. Наш проэкт работает в кодировке UTF-8. Возникла необходимость взаимодействия с другим сервисом методом SOAPю Получиаем ответ от сервиса в кодировке ASCII. Сразу замечу, не нужно писать что ASCII это тот же UTF-8, так как это не совсем так, потому что это лишь часть ASCII но в глобальном масштабе это разные кодировки. Что выходит далее. Мы накладываем ЭЦП на данный ответ и опять его бросаем на другой сервис в следствии чего нам приходит ошибка о том что данные отличаються от тех которые приходили ранее. Проблема именно в том что данные которые были получены в ASCII искажаются после наложения ЭЦП. Теперь собственно вопрос, каким образом можносделать конвертацию кодировки? Варианты типа: mb_convert_encoding iconv не справляються с задачей. Отвечу на вопрос как узнали кодировку, ответ: mb_detect_encoding.
не всегда корректно может определить кодировку ... и похоже что-то в вашем сервисе/функции которая накладывает ЭЦП. Может у нее есть (или нужно просто добавить) параметр - указывающий кодировку? Хотя я насколько помню - для ЭЦП вообще по барабану кодировки... она же побитово с алгоритмами рбаотает ... по сути хоть exe хоть bat файл...
Все верно, для ЭЦП по барабану какая кодировка. Да тут как бы и ЭЦП ни при чем. Сам сервис чужой возвращает в другой кодировке. Я уже тоже начал думать что не ASCII, а что то другое. Вот теперь сижу и думаю как правильно определить кодировку в которой приходит строка