Umlaute in Scriptnamen

Hallo,

ich beginne gerade mit meinen ersten Gehversuche unter 4.0 :slight_smile: (unter Windows).

Nach der erfolgreichen Installation und Konvertierung bekomme ich (unter anderem) nun Fehlermeldungen der Art:

Compile Error: Unknown: Failed opening required 'C:\IP-Symcon\scripts/Fensterstatus prüfen.ips.php' (include_path='.;C:\php\pear')
   Error in Script Unknown on Line 0
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   55 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler

Es sieht so aus, als ob es Probleme mit den Umlauten (hier: ‚prüfen‘) in Dateinamen gibt. Auch aus der Konsole kann ich das Script nicht aufrufen. Hier kommt die Fehlermeldung: „Datei #C:\IP-Symcon\scripts/Fensterstatus prüfen.ips.php existiert nicht“. Dürfen Dateinamen keine Umlaute mehr enthalten, oder ist es noch ein Bug?

Wie könnte ich denn den Dateinamen konsistent ändern? Gibt es da einen Trick?

Viele Grüße

Burkhard

Hi!

Also grundsätzlich sind Umlaute in so einem Umfeld nie eine schlaue Idee :wink:

Umlaute immer umschreiben nach diesem Schema:
ü = ue
ä = ae
ö = oe
ß = ss

Mal davon abgesehen hat IPS4 noch so einige Baustellen bzgl. einheitlicher Verarbeitung von Umlauten :rolleyes: Ich habe da auch schon Stunden geflucht in Skripten. Teilweise werden innerhalb einer Funktion Werte als UTF8 gelesen, dann als ASCII verarbeitet und dann wieder als UTF8 zurückgegeben…total Banane… Hab die Arbeiten an dieser Stelle eingestellt und warte auf einheitliches UTF8 :slight_smile:

Aber für deinen Fall wird es ausreichen > einfach die Umlaute ändern wie beschrieben.

Grüße,
Chris

Stimmt natuerlich;)

Aber an einigen Stellen habe ich mich nicht daran gehalten (war ja auch nicht notwendig). Ich vermute daher, dass das Thema noch mit zu den Baustellen gehört.

Wie kann ich jetzt aber am einfachsten die betroffenen Dateinamen umbenennen? An den Umbenennungsdialog komme ich ja nicht ran :frowning:

Kann ich (und reicht es?) den Namen in der Settings.json ändern?

        "ID21929": {
            "position": 0,
            "readOnly": false,
            "ident": "",
            "hidden": false,
            "type": 3,
            "name": "Fensterstatus prüfen",
            "info": "",
            "icon": "",
            "data": {
                "isBroken": true,
                "lastExecute": 1453639804,
                "type": 0,
                "file": "Fensterstatus prüfen.ips.php"
            },
            "parentID": 55774,
            "disabled": false
        },

Viele Grüße

Burkhard

Vlt. auf Dateiebene umbenennen und dann neu in IPS importieren und die defekten dann aus IPS raus? Oder per Skript umbenennen und neu registrieren im IPS? Müsste man mal versuchen was einfacher geht.

Mach dir vorher eine komplette Sicherung!!! Bevor Skripte einfach so für immer verschwinden :eek: :wink:

Grüße,
Chris

Ein neues Importieren wollte ich auf jeden Fall vermeiden damit die Scripte keine neuen IDs bekommen.

Ich bin nun den Weg über die Settings.json gegangen und habe alle Einträge mit

.*"file":.*[üäöß].*

gesucht und manuell korrigiert. Die Dateinamen habe ich ebenfalls manuell geändert.

Schien mir am einfachsten. Bislang sieht es gut aus: IPS startet und ich kann die Scripte bearbeiten.:loveips:
Ich hoffe mal, dass ich keine Abhängigkeiten übersehen habe.

Viele Grüße

Burkhard

Ich würde auf Umlaute an diesen Sensiblen stellen komplett verzichten. Das UTF-8/ASCII Problem wird wahrscheinlich auch erst mit PHP 7.x vollständig gelöst, da dort dann der UTF-8 Support vollstäandig ist.

paresy

Hallo paresy,

dem stimme ich grundsätzlich zu. Dennoch lässt die Funktion IPS_SetScriptFile () sowohl in 3.4 als auch in 4.0 Umlaute zu. Nur in 4.0 ist das Ergebnis im Filesystem ein anderes: aus „Fensterstatus prüfen.ips.php“ wird „Fensterstatus prüfen.ips“.

Damit hatte ich bei der Konvertierung Probleme. Meiner Meinung nach liegt hier noch ein Fehler vor.

Viele Grüße

Burkhard