PunycodeSwift
PunycodeSwift
是一个纯 Swift 库,允许您使用 String 扩展来通过编码和解码 Punycode 字符串。
什么是 Punycode?
Punycode 是一种使用有限 ASCII 字符集表示 Unicode 的表示形式,该 ASCII 字符集用于互联网主机名。使用 Punycode,包含 Unicode 字符的主机名被转换为一个仅由字母、数字和连字符组成的 ASCII 子集,这称为字母-数字-连字符 (LDH) 子集。例如,München(慕尼黑的德语名称)被编码为 Mnchen-3ya。 (维基百科)
要求
- iOS 9.3 或更高版本
- macOS 10.12 或更高版本
- tvOS 10.2 或更高版本
- Swift 4.2 或更高版本
安装
Carthage
将以下内容添加到您的Cartfile
中,并按照这些说明操作。
github "gumob/PunycodeSwift" # Latest (Swift 5.0)
github "gumob/PunycodeSwift" ~> 2.0 # Swift 5.0
github "gumob/PunycodeSwift" ~> 1.0 # Swift 4.2
CocoaPods
要将 Punycode 集成到项目中,请将以下内容添加到您的 Podfile
。
platform :ios, '9.3'
use_frameworks!
pod 'Punycode' # Latest (Swift 5.0)
pod 'Punycode', '~> 2.0' # Swift 5.0
pod 'Punycode', '~> 1.0' # Swift 4.2
用法
编码和解码 IDNA
import Punycode
var sushi: String = "寿司"
sushi = sushi.idnaEncoded!
print(sushi) // xn--sprr0q
sushi = sushi.idnaDecoded!
print(sushi) // "寿司"
直接编码和解码 Punycode
import Punycode
var sushi: String = "寿司"
sushi = sushi.punycodeEncoded!
print(sushi) // sprr0q
sushi = sushi.punycodeDecoded!
print(sushi) // "寿司"
版权
Punycode 以 MIT 许可证发布,这意味着您可以修改它、重新分发它或以任何您喜欢的任何方式使用它。