【问题标题】:stringByRemovingPercentEncoding resulting in null stringstringByRemovingPercentEncoding 导致空字符串
【发布时间】:2022-10-02 06:23:24
【问题描述】:

我有一个文件路径/Users/alexandra/Downloads/folder%20with%20spaces/,我想删除百分比编码并使其成为文件 URL。使用方法stringByRemovingPercentEncoding 使字符串为空。

文档说“删除了百分比编码序列的新字符串,或者如果接收器包含无效的百分比编码序列,则为 nil。”,但我没有看到 %20 空格错误?

【问题讨论】:

    标签: objective-c macos nsstring nsurl


    【解决方案1】:

    您没有在 Objective-C 中向我们展示您的非工作代码,但这在我的机器上运行良好(在 Swift 中):

    if let path = "/Users/alexandra/Downloads/folder%20with%20spaces/".removingPercentEncoding {
        let url = URL(fileURLWithPath: path)
        print(url) // file:///Users/alexandra/Downloads/folder%20with%20spaces/
    }
    

    另一方面,既然您已经错误地在字符串路径名中获取了百分比编码,为什么不直接将file:// 放在它前面并完成它呢?

    let path = "/Users/alexandra/Downloads/folder%20with%20spaces/"
    if let url = URL(string: "file://" + path) {
        print(url)
    }
    

    【讨论】:

    • 这已经帮助我解决了我的问题。感谢您让我更好地理解 url :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多