seitdem das Encoding (seit opsi-winst 4.12.4.17) komplett überarbeitet wurde, verwende ich in allen Skripten "encoding=utf8". Damit verschwindet die Warnung "Encoding=system makes the opsiscript not portable between different OS".
Unter opsi-winst 4.12.4.24-1 aus testing kommt jetzt aber schon zum zweiten Mal folgende Warnung:
zunächstmal zur Warnung:
"Encoding=system makes the opsiscript not portable between different OS"
Wen diese Warnung nervt und er aber nicht
'encoding=utf8' in alle seine scripte, includes, libraries (usw) schreiben will,
hat ab opsi-script 4.12.4.23 die Möglichkeit diese Warnung auszuschalten mit dem config: opsi-script.global.supressSystemEncodingWarning=true
Die Warnung: Given encodingString system is different from the detected encoding utf8
Ist wie folgt zu verstehen:
'Given encodingString' ist das was in der Anweisung 'encoding=' angegeben ist. Gibt es dies Anweisung nicht, so ist dies Implizit 'system' (Weil: das war schon 'immer' der default und defaults ändern wir nicht).
'detected encoding': Ist das was opsi-script beim einlesen vorfindet.
Jetzt ist das detectiern von encodings so eine Sache, weil bei der ausschließlichen Verwendung von plain-ascii (US-ascii) es binär keinen unterschied zwischen utf8 und cp1252 (system auf deutschem win) gibt.
Aber wenn die Datei z.B. einen BOM hat (utf8-bom) oder anhand von Umlauten erkannt wird das es sich um utf8 handeln muß,
wird die Datei natürlich als utf8 eingelesen, obwohl das (evtl. implizite) 'given encoding' = system ist.
Aber in einem solchen Fall haben wir einen widerspruch der erwähnt wird.
Ich überlege zur Zeit ob ich an dieser Stelle noch eine Prüfung einführe, ob eine Datei überhaupt non plain-ascii Zeichen enthält
und wenn nicht, auf jede Warnung zu verzichte, weil es in diesem Fall echt Haarspalterei ist da es ja keinen Unterschied gibt (siehe oben).
gruß
detlef
Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.
Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung. Gerne informieren wir Sie zu unserem Angebot.
Danke für die ausführliche Erklärung, das klingt alles sehr plausibel. "encoding=utf8" setze ich jetzt bei allen Paketen, sobald ich sie wieder für ein Update anfasse.
Ich bekomme die Meldung aber mittlerweile bei fast jedem Paket. Heute morgen auch gleich wieder...
Nach direktem Austausch mit Detlef, will ich hier kurz die Lösung präsentieren:
Nachdem anfänglich "Encoding=utf8" in den "Start"-Skripten "setup.opsiscript" bzw. "uninstall.opsiscript" ausgereicht hat, um die Warnung zu beheben, wird seit einer neueren Version von opsi-winst das mit "Sub" eingebundenen Skripten notwendig.
Nachdem das Encoding nun auch in der "delsub.opsiscript" gesetzt wird, ist die Meldung wieder weg.