CocoaPods trunk is moving to be read-only. Read more on the blog, there are 13 months to go.
| TestsTested | ✓ |
| LangLanguage | SwiftSwift |
| License | MIT |
| ReleasedLast Release | Nov 2017 |
| SwiftSwift Version | 4.0 |
| SPMSupports SPM | ✗ |
Maintained by Kazunobu Tasaka, kitoko552.
PercentEncoder is a lightweight library to escape string using so called URL encoding in Swift.
PercentEncoder uses JavaScriptCore framework for URL-encoding although URL-encoding is executed with CFURLCreateStringByAddingPercentEscapes() or NSString.stringByAddingPercentEncodingWithAllowedCharacters() in most cases.
The followings is the reason and has motivated me to make this library.
CFURLCreateStringByAddingPercentEscapes() deprecated in iOS9NSString.stringByAddingPercentEncodingWithAllowedCharacters() is introduced from iOS 7. However it won’t work in multi-byte languages like Japanes, Chinese, etc and an app crashes as shown at the issue in Alamorefire.PercentEncoder offers PercentEncoding enum and String extension methos for URL-encoding.
PercentEncoding has four values which are equivalent to Javscript functions(encodeURI, encodeURIComponent, decodeURI, decodeURIComponent).
let url = "http://tasanobu.jp?city=東京&year='20"
/// EncodeURI
let escaped = PercentEncoding.EncodeURI.evaluate(string: url)
// encoded to "http://tasanobu.jp?city=%E6%9D%B1%E4%BA%AC&year='20"
/// DecodeURI
PercentEncoding.DecodeURIComponent.evaluate(string: escaped)
// decoded back to "http://tasanobu.jp?city=東京&year='20"
let value = "東京" // 東京 means Tokyo which is the capital of Japan.
/// EncodeURI
let encoded = PercentEncoding.EncodeURIComponent.evaluate(string: value)
// encoded to "%E6%9D%B1%E4%BA%AC"
/// DecodeURI
PercentEncoding.DecodeURIComponent.evaluate(string: encoded)
// decoded back to "東京"PercentEncoding offers String extension methods which are equivalent to Javscript functions(encodeURI, encodeURIComponent, decodeURI, decodeURIComponent).
/// encodeURI
"http://tasanobu.jp?city=東京&year='20".ped_encodeURI()
/// decodeURI
"http://tasanobu.jp?city=%E6%9D%B1%E4%BA%AC&year='20".ped_decodeURI()
/// encodeURIComponent
let encoded = "東京".ped_encodeURIComponent()
// encoded to "%E6%9D%B1%E4%BA%AC"
/// decodeURIComponent
encoded.ped_decodedURIComponent()
// decoded back to "東京"Install with Cocoapods
platform :ios, '8.0'
use_frameworks!
pod 'PercentEncoder'Git submodule
See https://github.com/tasanobu/PercentEncoder/releases
PercentEncoder is released under the MIT license. See LICENSE for details.