übergibt eine korrekt codierte utf-8-Zeichenfolge zu einem php soapCall und es gibt zurück, dass es kein gültiges utf_8 Zeichen ist.PHP übergibt eine utf-8-codierte Zeichenfolge schlägt auf 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
kehrt: TEST- @ ' "½ ITS SINGLE
hinzugefügt 'der Codierung'=> 'UTF-8' sowohl die init Optionen Soapclient und zu den Optionen soapcall.
MariaDB Datenbank, Tabelle, Spalte sind utf8mb4, Sortierung utf8mb4_unicode_ci
php.ini default_charset = "UTF-8"
Datenbankverbindung utf8m gesetzt b4 html-Seite auf charset = utf8 gesetzt
Anzeige auf der Webseite korrekt. Encoding Detect zeigt UTF-8 direkt vor dem Senden an soapCall, wird aber von soapCall abgelehnt.
Was fehlt mir?
EDIT: Ich auch Vorschlag von PHP DOMDocument::save() saves as ASCII instead of UTF-8 verwendet, aber es hat nicht geholfen.
$xmlDomDoc->encoding = 'UTF-8';
ich beschlossen schließlich die Frage Einstellungen in der php.ini zu ändern für [iconv] und [mbstring] auf 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