11shop
27. Januar 2020 um 10:40
1
Hallo,
Wenn ich mein Theme kompilieren möchte, bekomme ich folgende Fehlermeldung:
iconv -l : utf-32le & utf-8 sind da.
[@Michael Telgmann](http://forum.shopware.com/profile/17553/Michael Telgmann “Michael Telgmann”) [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)
Mit freundlichen Grüßen
Amin Nayerhabibi
11shop
30. Januar 2020 um 09:56
2
ich habe das selber gelöst : in ParseState.php -->
if(mb_detect_encoding($sUtf32)!= 'UTF-8'){
return iconv('utf-32le', $this->sCharset, $sUtf32);
}
1 „Gefällt mir“
noah
18. März 2020 um 16:17
3
Habe dasselbe Problem jetzt nach dem Update auf 6.1.4
FFWDcc
23. März 2020 um 07:38
4
Gleiches Problem mit Update auf 6.1.4 . @11shop Wo finden wir denn die ParseState.php bzw. wo muss diese erstellt werden? Danke für die Antwort.
11shop
23. März 2020 um 11:05
5
@FFWDcc schrieb:
Gleiches Problem mit Update auf 6.1.4 . @11shop Wo finden wir denn die ParseState.php bzw. wo muss diese erstellt werden? Danke für die Antwort.
vendor/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/ParserState.php
1 „Gefällt mir“
FFWDcc
23. März 2020 um 13:39
6
@11shop Danke. Jetzt läuft der Spaß.
mthrum
19. Mai 2020 um 07:04
8
Gleiches Problem in 6.2.0 RC1 - gibt es hier einen Lösungsansatz? Die Datei vendor/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/ParserState.php hat sich wohl verändert, die oben beschriebene Abfrage ist so nicht mehr zu finden. Der return ist in Zeile 91 - wie müsste ich an dieser Stelle vorgehen?
gwen
20. Mai 2020 um 12:20
9
Habe das gleiche Problem bei einem Shop.
In Zeile 91 das return iconv(); mit if(mb_detect_encoding($sUtf32)!= ‘UTF-8’){ {} umklammnern
if(mb_detect_encoding($sUtf32)!= 'UTF-8'){
return iconv('utf-32le', $this->sCharset, $sUtf32);
}
Hallo und danke für die ursprüngliche Lösung und die weiteren Erklärungen.
In meinem Fall wurde nach aktivierung eines Themes bei einem hoster, obige exception nicht angezeigt sonder einfach nur
WARNING [php] Notice: iconv(): Wrong charset, conversion from `utf-32le' to `utf-8' is not allowed ["exception" => ErrorException { …}]
Die akzeptierte Lösung in stackoverflow schlägt hier alternativ vor mb_convert_encoding zu benutzen, da Zitat:
“Looks like that not all iconv
versions can actually convert UTF-16LE
to UTF-8
.”
Also in Zeile 91 in “vendor/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing”
return iconv('utf-32le', $this->sCharset, $sUtf32);
mit Folgendem ersetzen
return mb_convert_encoding($sUtf32 , 'UTF-8' , 'UTF-16LE');
1 „Gefällt mir“
Schrank
22. September 2021 um 13:46
11
Da das hier das erste Suchergebnis ist, sei nochmal ein besserer Fix hiergelassen.
Dieser Codeschnipsel übersetzt einen String von UTF-32LE nach UTF-8 (zumindest stand das bei meinem Test in $this->sCharset.
return iconv('utf-32le', $this->sCharset, $sUtf32);
Dieser Codeschnipsel tut das nicht, er geht von UTF-16LE ausl
return mb_convert_encoding($sUtf32 , 'UTF-8' , 'UTF-16LE');
Eine bessere Lösung ist daher:
return mb_convert_encoding($sUtf32 , $this->sCharset , 'UTF-32LE');
Hallo,
welchen string müsste ich einsetzen für ‚utf8mb4‘ ?
Grüße
Manfred