2017-10-30 1 views
0

Ich schreibe ein Apple-Skript, das Base64-String als Argument nehmen wird. Das Argument base64 ist der Dateipfad. Ich muss diese Datei in bestimmten Anwendungen öffnen. Ich muss dieses Eingabeargument dekodieren, um die Datei zu öffnen.Wie dekodiert man Base64-Datei Pfad Zeichenfolge in Apple-Skript?

Ich habe den folgenden Code versucht, aber die Pfadtrennzeichen (/) werden als% 2F decodiert.

set decodedFilePath to base64decode(filePath) 

on base64decode(str) 
    return do shell script "openssl enc -base64 -d <<END_OF_TEXT" & str & "END_OF_TEXT" 
end base64decode 

Wie kann ich die base64 Dateipfad String in Apple dekodieren, die auch die Datei Separator entschlüsseln?

+0

Wenn Sie "% 2F" bekommen statt "/", das bedeutet, dass sie [URL-kodiert] (https sind: // en .wikipedia.org/wiki/Prozentcodierung) * und dann * base64-codiert. Um es zu dekodieren, müssen Sie beide Codierungsschichten umkehren (in umgekehrter Reihenfolge). –

+0

Ja. Ich hab es geschafft. Vielen Dank –

Antwort

0

Wenn Sie keine spezifische Notwendigkeit haben, openssl zu verwenden, warum nicht einfach base64 verwenden?

Das folgende Beispiel AppleCode dechiffriert eine base64 Datei Pfadname codiert für z.B. /Temp/base64.pdf, ein PDF-Dokument der Handbuchseite für base64.

set filePath to "L1RlbXAvYmFzZTY0LnBkZgo=" 

set decodedFilePath to base64decode(filePath) 

on base64decode(str) 
    return do shell script "base64 -D <<<" & quoted form of str 
end base64decode 

Dies funktioniert auch mit:

return do shell script "openssl enc -base64 -d <<<" & quoted form of str 
Verwandte Themen