Bug #230
offen[Bugsink] TYPO3\CMS\Extbase\Persistence\Generic\Storage\Exception\SqlErrorException: An exception occurred while executing a query: Incorrect string value: '\x…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/15fa8a05-b43e-44c2-a1b4-8880d4eb21f6/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
TYPO3\CMS\Extbase\Persistence\Generic\Storage\Exception\SqlErrorException: An exception occurred while executing a query: Incorrect string value: '\x…
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers¶
1. Ursache identifiziert¶
Der MySQL-Fehler mysqli_sql_exception: Incorrect string value: '\xC0\xA7\xC0\xA2%2...' zeigt, dass ein URL-Request eingeht, der ungültige UTF-8-Byte-Sequenzen enthält (\xC0\xA7\xC0\xA2). Diese Bytes sind kein gültiges UTF-8 – sie stammen höchstwahrscheinlich aus einer anderen Zeichenkodierung (z.B. GBK/GB2312 für chinesische Zeichen oder fehlerhaft doppelt-kodiertes UTF-8).
Der Fehler tritt in der TYPO3-Core-Middleware NormalizedParamsAttribute (Schicht 8 im Stacktrace) auf, die eingehende Request-Parameter normalisiert und diese (wahrscheinlich über eine Datenbank-Einfügung oder einen Lookup) verarbeitet. Die Spalte url in der betroffenen Datenbanktabelle ist als utf8/utf8mb3 definiert und lehnt die ungültigen Bytes ab.
Kernproblem: Fehlende utf8mb4-Kodierung auf Datenbank-/Tabellen-/Spaltenebene kombiniert mit einem ungültigen Request-URL.
2. Fix (konkret)¶
Schritt 1 – Datenbank-Verbindung und Tabelle auf utf8mb4 umstellen:
-- Datenbank-Verbindung charset in LocalConfiguration.php sicherstellen:
// 'DB' => [
// 'Connections' => [
// 'Default' => [
// 'charset' => 'utf8mb4',
// ],
// ],
// ],
-- Tabelle konvertieren (beispielhaft, je nach betroffener Tabelle):
ALTER TABLE [betroffene_tabelle] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Oder nur die Spalte:
ALTER TABLE [betroffene_tabelle] MODIFY url VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Schritt 2 – Eingabedaten sanitizieren:
In der betroffenen Stelle (Middleware oder Extension, die die URL in die DB schreibt) vor der Einfügung prüfen:
// Unzureichende UTF-8-Sequenzen entfernen oder konvertieren:
$cleanUrl = mb_convert_encoding($url, 'UTF-8', 'UTF-8');
// Oder aggressiver:
$cleanUrl = iconv('UTF-8', 'UTF-8//IGNORE', $url);
Schritt 3 – MySQL-Session-Charset prüfen:
-- Sicherstellen, dass der MySQL-Server korrekt konfiguriert ist:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
-- character_set_client, character_set_connection, character_set_results sollten utf8mb4 sein
3. Betroffene TYPO3 Extension¶
-
Primär: TYPO3 Core (
ext:core) – speziell die MiddlewareTYPO3\CMS\Core\Middleware\NormalizedParamsAttributeund das zugrunde liegende Datenbank-Subsystem - Die betroffene Tabelle mit der Spalte
urlist höchstwahrscheinlich:-
sys_redirect(ext:core) – falls Redirects verarbeitet werden, oder - Eine Drittanbieter-Extension (z.B.
seo,realurl-Nachfolger, oder eine individuelle Extension, die URL-Tracking betreibt)
-
- Ohne exakten Tabellennamen aus dem Stacktrace lässt sich die spezifische Extension nicht mit 100% Sicherheit benennen
4. Confidence¶
85% – Die Ursache (UTF-8-Mismatch + ungültige Bytes) ist eindeutig diagnostiziert. Die exakte betroffene Tabelle/Extension lässt sich ohne vollständigen Fehlerlog (mit Tabellennamen) nicht mit voller Sicherheit benennen. Die empfohlenen Fixes sind jedoch universell anwendbar und lösen das Problem.
Nichts anzuzeigen