, передавая правильно закодированную строку utf-8 в soapCall php и возвращает, что это не допустимый символ utf_8.php, передающий закодированную строку utf-8, терпит неудачу в soapCall
$source = “test”[email protected]– '— " ½ ℗ ↄ⃝ it′s ‘single’
echo mb_detect_encoding($source, "auto") is UTF-8hex = E2 80 9C 74 65 73 74 E2 80 9D 2D 40 E2 80 93 20 27 E2 80 94 20 22 20 C2 BD 20 20 E2 84 97 20 20 E2 86 84 E2 83 9D 20 20 69 74 E2 80 B2 73 20 E2 80 98 73 69 6E 67 6C 65 E2 80 99
Error: processSalesOrder interupted because of SOAP-ERROR: Encoding: string '\x9c...' is not a valid utf-8 string
возвращается: TEST- @ "½ ITS SINGLE
добавил 'кодирования' => 'UTF-8' на обоих SoapClient иницилизации вариантов и к опциям soapCall. база данных
MariaDB, таблицы, столбца utf8mb4, сверка utf8mb4_unicode_ci
php.ini default_charset = "UTF-8"
соединение с базой данных устанавливается в utf8m b4 html page set to charset = utf8
Отображается правильно на веб-странице. обнаружение кодирования показывает UTF-8 прямо перед отправкой в soapCall, но отклоняется с помощью soapCall.
Что мне не хватает?
EDIT: Я также использовал предложение от PHP DOMDocument::save() saves as ASCII instead of UTF-8, но это не помогло.
$xmlDomDoc->encoding = 'UTF-8';
я, наконец, решен вопрос меняющийся настройки в php.ini для [Iconv] и [MBstring] в UTF-8
iconv.input_encoding = UTF-8
iconv.internal_encoding = UTF-8
iconv.output_encoding = UTF-8
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8