# 在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](https://cdn.hashnode.com/res/hashnode/image/upload/v1647260791561/u0x823_dz.png)

