Использование PHP SoapClient для отправки символа UTF-16 в службу WCF

Мое PHP-приложение принимает пользовательский ввод и отправляет его в веб-службу WCF. Иногда мои пользователи копируют и вставляют из Word и получают символы UTF-16 в свое сообщение, такое как "En Dash" \u2013

Я получаю следующую ошибку, когда это происходит.

Неустранимая ошибка PHP: SOAP-ERROR: Кодировка: строка '\xe2...' не является допустимой строкой utf-8 в *** в строке 31

Я попытался установить опцию кодирования конструктора SoapClient в 'UTF-16'. Кажется, мой запрос работает, но я замечаю, что кодировка заголовка xml по-прежнему установлена ​​в UTF-8.

Есть идеи?

1 ответ

WCF работает только в UTF-8, а слово работает в UTF-16 по умолчанию, что объясняет, почему он выглядит как UTF8

Попробуйте использовать mbstring, чтобы исправить проблему

Другие вопросы по тегам