Swiftpack.co - gumob/PunycodeSwift as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by gumob.
gumob/PunycodeSwift 2.1.0
PunycodeSwift is a pure Swift library to allows you to encode and decode punycoded strings
⭐️ 23
🕓 3 years ago
.package(url: "https://github.com/gumob/PunycodeSwift.git", from: "2.1.0")

Carthage compatible Version Platform Build Status codecov Language Language Packagist

PunycodeSwift

PunycodeSwift is a pure Swift library to allows you to encode and decode punycoded strings by using String extension.

What is Punycode?

Punycode is a representation of Unicode with the limited ASCII character subset used for Internet host names. Using Punycode, host names containing Unicode characters are transcoded to a subset of ASCII consisting of letters, digits, and hyphen, which is called the Letter-Digit-Hyphen (LDH) subset. For example, München (German name for Munich) is encoded as Mnchen-3ya. (Wikipedia)

Requirements

  • iOS 9.3 or later
  • macOS 10.12 or later
  • tvOS 10.2 or later
  • Swift 4.2 or later

Installation

Carthage

Add the following to your Cartfile and follow these instructions.

github "gumob/PunycodeSwift"          # Latest (Swift 5.0)
github "gumob/PunycodeSwift" ~> 2.0   # Swift 5.0
github "gumob/PunycodeSwift" ~> 1.0   # Swift 4.2

CocoaPods

To integrate Punycode into your project, add the following to your 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

Usage

Encode and decode IDNA:

import Punycode

var sushi: String = "寿司"

sushi = sushi.idnaEncoded!
print(sushi)  // xn--sprr0q

sushi = sushi.idnaDecoded!
print(sushi)  // "寿司"

Encode and decode Punycode directly:

import Punycode

var sushi: String = "寿司"

sushi = sushi.punycodeEncoded!
print(sushi)  // sprr0q

sushi = sushi.punycodeDecoded!
print(sushi)  // "寿司"

Copyright

Punycode is released under MIT license, which means you can modify it, redistribute it or use it however you like.

GitHub

link
Stars: 23
Last commit: 3 years ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics