Fehler nach 6.1 Update

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

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“

Habe dasselbe Problem jetzt nach dem Update auf 6.1.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.

@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“

@11shop‍ Danke. Jetzt läuft der Spaß.  Thumb-Up

Gleiches Problem

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?

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“

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