Encoding-Problem beim shell-Befehl (Linux)
Verfasst: Mi 25. Mär 2020, 12:54
Liebe Forumsteilnehmer,
folgendes kleine Makro, um zu einem geöffneten Office-Dokument schnell sein "beinhaltende Verzeichnis" mit einem Dateimanager nach Wahl (in meinem Fall konqueror) öffnen zu können, hat sich seit vielen Jahren bewährt.
Neuerdings - leider kann ich den genauen Zeitpunkt nicht mehr recherchieren - kommt es allerdings zu einem Fehler, wenn im Pfadnamen des zu öffnenden Verzeichnisses (also strPath) Sonderzeichen vorkommen.
Anstelle eines "ö" beispielsweise wird in das Verzeichnisfeld des Dateimanagers "��" eingefügt und der gewünschte Ordner daher "nicht gefunden".
Nachdem die testweise eingefügte MsgBox()-Anweisung noch das korrekte Sonderzeichen anzeigt, nehme ich an, das Problem dürfte in einer fehlerhaften Interpretation des übergebenen strPath liegen.
Über diese Vermutung komme aber seit Tagen nicht mehr hinaus, obwohl ich schon alle mehr oder weniger naheliegenden Einstellungen unter Extras/Optionen/Spracheinstellungen ohne Änderung verändert habe und auch keine Möglichkeit einer Umwandlungsfunktion oder expliziten Angabe des Encodings für den Shell-Aufruf finden konnte.
Wäre daher für alle Hinweise und Ideen dankbar, wie man das Problem lösen (oder zur Not auch nur kreativ umgehen) könnte.
Kontext ist: KDE neon 5.18 (also im wesentlichen Ubuntu 18.04 LTS) mit
LibreOffice Version: 6.4.0.3 (Build-ID: b0a288ab3d2d4774cb44b62f04d5d28733ac6df8,
CPU-Threads: 4; BS: Linux 4.15; UI-Render: Standard; VCL: kf5; Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE
Calc: threaded)
folgendes kleine Makro, um zu einem geöffneten Office-Dokument schnell sein "beinhaltende Verzeichnis" mit einem Dateimanager nach Wahl (in meinem Fall konqueror) öffnen zu können, hat sich seit vielen Jahren bewährt.
Code: Alles auswählen
sub FilemanagerHere
dim strPath As String
if ThisComponent.URL = "" Then
MsgBox "Dokument wurde noch gar nicht gespeichert""
Exit Sub
Else
If Not BasicLibraries.isLibraryLoaded("Tools") then BasicLibraries.loadLibrary("Tools")
strPath = DirectoryNameoutofPath(ConvertFromUrl(ThisComponent.URL),"/")
MsgBox(strPath) ' Bis hierher alles korrekt
Shell ("/usr/bin/konqueror", 1, "'" & strPath & "'")
End if
end sub
Anstelle eines "ö" beispielsweise wird in das Verzeichnisfeld des Dateimanagers "��" eingefügt und der gewünschte Ordner daher "nicht gefunden".
Nachdem die testweise eingefügte MsgBox()-Anweisung noch das korrekte Sonderzeichen anzeigt, nehme ich an, das Problem dürfte in einer fehlerhaften Interpretation des übergebenen strPath liegen.
Über diese Vermutung komme aber seit Tagen nicht mehr hinaus, obwohl ich schon alle mehr oder weniger naheliegenden Einstellungen unter Extras/Optionen/Spracheinstellungen ohne Änderung verändert habe und auch keine Möglichkeit einer Umwandlungsfunktion oder expliziten Angabe des Encodings für den Shell-Aufruf finden konnte.
Wäre daher für alle Hinweise und Ideen dankbar, wie man das Problem lösen (oder zur Not auch nur kreativ umgehen) könnte.
Kontext ist: KDE neon 5.18 (also im wesentlichen Ubuntu 18.04 LTS) mit
LibreOffice Version: 6.4.0.3 (Build-ID: b0a288ab3d2d4774cb44b62f04d5d28733ac6df8,
CPU-Threads: 4; BS: Linux 4.15; UI-Render: Standard; VCL: kf5; Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE
Calc: threaded)