Skip to main content

Command Palette

Search for a command to run...

在Swift中进行URLEncode和URLDecode小纸条

Published
1 min read
在Swift中进行URLEncode和URLDecode小纸条

周末写学习英语小助手播放网络音频时,发现有些音频无法加载。仔细一看,发现使用URL初始化一个String时并不会对它进行URLEncode,所以会导致AVPlayer加载失败。搜索一下之后,留下这张小纸条。我的处理方法就是extension String,为String加入两个方法,使用了Foundation的两个方法对String进行URLEncode和URLDecode。

import Foundation
extension String {
    func urlEncoded() -> String {
        let encodeUrlString = addingPercentEncoding(withAllowedCharacters:.urlQueryAllowed)
        return encodeUrlString ?? ""
    }

    //将编码后的url转换回原始的url
    func urlDecoded() -> String {
        return removingPercentEncoding ?? ""
    }
}

使用上就非常简单了:

let url = "http://github.com/this is space/这是中文"
print(url.urlEncoded())
print(url.urlEncoded().urlDecoded())

效果如下图:

截屏2022-03-14 上午8.22.08.png

More from this blog

Https 本地服务器小纸条

最近想要尝试一下Telegram mini app,在调试时需要使用https的服务。试来试去发现在Mac下完成一个简单的HTTPS服务器还是需要点奇奇怪怪的工具的。但是整体来讲非常简单。 准备证书 主要会使用mkcert来创建证书。首先安装mkcert。 brew install mkcert brew install nss # if use Firefox 将mkcert加入到本地root CA。 mkcert -install 生成证书 本地调试可以使用localhost或127.0...

Feb 21, 20241 min read
Https 本地服务器小纸条

macOS中使用Docker发布一个python项目的小纸条

最近写了一个Telegram Bot,它可以使用语音和文字与GPT进行交互,成为了我日常重度使用的工具。从练习英语的听说读,到日常的搜索使用上都让我有了不少收获。终于,日常跑在我笔记本上的日子就要过去了,我需要它能日常跑在我的服务器上,所以准备使用Docker整个image,使得我日常的更新和服务器的迁移更为简单些。所以写下这个小纸条,方便以后自己回来查看。 安装Docker 使用Homebrew安装简单方便: brew install --cask docker Homebrew会视你的机器...

Mar 10, 20233 min read
macOS中使用Docker发布一个python项目的小纸条

老房东的纸条箱

39 posts