Ausgabe
Ich habe einen Dateipfad /Users/alexandra/Downloads/folder%20with%20spaces/
und möchte die prozentuale Codierung entfernen und daraus eine Datei-URL machen. Die Verwendung der Methode stringByRemovingPercentEncoding
macht die Zeichenfolge null.
In der Dokumentation steht “Eine neue Zeichenfolge, bei der die prozentual codierten Sequenzen entfernt wurden, oder nil, wenn der Empfänger eine ungültige prozentuale Codierungssequenz enthält.”, aber ich sehe nicht, %20
dass ein Leerzeichen falsch ist?
Lösung
Sie haben uns Ihren nicht funktionierenden Code in Objective-C nicht gezeigt, aber das funktioniert auf meinem Computer (in Swift) einwandfrei:
if let path = "/Users/alexandra/Downloads/folder%20with%20spaces/".removingPercentEncoding {
let url = URL(fileURLWithPath: path)
print(url) // file:///Users/alexandra/Downloads/folder%20with%20spaces/
}
Auf der anderen Seite, da Sie bereits fälschlicherweise eine prozentuale Codierung in einem Zeichenfolgenpfadnamen erworben haben, warum nicht einfach file://
davor bleiben und damit fertig sein?
let path = "/Users/alexandra/Downloads/folder%20with%20spaces/"
if let url = URL(string: "file://" + path) {
print(url)
}
Beantwortet von – matt
Antwort geprüft von – Jay B. (FixError Admin)