Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cosmo/iso8859

πŸŒβ©πŸ“„ Convert ISO8859 1-16 Encoded Text to String in Swift. Supports iOS, tvOS, watchOS and macOS.
https://github.com/cosmo/iso8859

encoding iso iso8859 macos swift tvos watchos

Last synced: about 2 months ago
JSON representation

πŸŒβ©πŸ“„ Convert ISO8859 1-16 Encoded Text to String in Swift. Supports iOS, tvOS, watchOS and macOS.

Awesome Lists containing this project

README

        

# ISO8859

Swift 5.1 compatible
License MIT

Convert ISO8859 1-16 Encoded Text to String in Swift.

## Usage

```swift
let encoding = ISO8859.part1
let string = String([...], iso8859Encoding: encoding)
```

[See Examples](#examples)

## Supported Character Sets

| Encoding | Name | Enum |
| --- | --- | --- |
| ISO8859-1 | Latin 1 Western European | `ISO8859.part1` |
| ISO8859-2 | Latin 2 Central European | `ISO8859.part2` |
| ISO8859-3 | Latin 3 South European | `ISO8859.part3` |
| ISO8859-4 | Latin 4 North European | `ISO8859.part4` |
| ISO8859-5 | Latin/Cyrillic | `ISO8859.part5` |
| ISO8859-6 | Latin/Arabic | `ISO8859.part6` |
| ISO8859-7 | Latin/Greek | `ISO8859.part7` |
| ISO8859-8 | Latin/Hebrew | `ISO8859.part8` |
| ISO8859-9 | Latin 5 Turkish | `ISO8859.part9` |
| ISO8859-10 | Latin 6 Nordic | `ISO8859.part10` |
| ISO8859-11 | Latin/Thai | `ISO8859.part11` |
| ISO8859-13 | Latin 7 Baltic Rim | `ISO8859.part13` |
| ISO8859-14 | Latin 8 Celtic | `ISO8859.part14` |
| ISO8859-15 | Latin 9 | `ISO8859.part15` |
| ISO8859-16 | Latin 10 South-Eastern European | `ISO8859.part16` |

## Examples

### File to Hebrew Text

```swift
if
let path = Bundle.main.path(forResource: "Hebrew-Text", ofType: "txt"),
let hebrewTextData = try? Data(contentsOf: URL(fileURLWithPath: path)),
let string = String(hebrewTextData, iso8859Encoding: ISO8859.part8)
{
print(string)
}
```

### Data to Turkish Text

```swift
let turkishTextData = Data(bytes: [84, 252, 114, 107, 231, 101])
if let string = String(turkishTextData, iso8859Encoding: ISO8859.part9) {
print(string) // Returns "Türkçe"
}
```

### UInt8 Bytes-Array to Greek Text

```swift
let greekTextbytes: [UInt8] = [0xE1, 0xE2, 0xE3, 0xE4]
if let string = String(greekTextbytes, iso8859Encoding: ISO8859.part7) {
print(string) // Returns "Ξ±Ξ²Ξ³Ξ΄"
}
```

## Installation

### [Swift Package Manager](https://swift.org/package-manager)

Add `ISO8859` as a dependency in your `Package.swift` file:

```swift
import PackageDescription

let package = Package(
dependencies: [
.package(url: "https://github.com/Cosmo/ISO8859.git", from: "1.1.0"),
]
)
```

### Manually

Just drag the source files into your project.

## Contact

* Devran "Cosmo" Uenal
* Twitter: [@maccosmo](http://twitter.com/maccosmo)
* LinkedIn: [devranuenal](https://www.linkedin.com/in/devranuenal)

## Other Projects

* [BinaryKit](https://github.com/Cosmo/BinaryKit) β€” BinaryKit helps you to break down binary data into bits and bytes and easily access specific parts.
* [Clippy](https://github.com/Cosmo/Clippy) β€” Clippy from Microsoft Office is back and runs on macOS! Written in Swift.
* [GrammaticalNumber](https://github.com/Cosmo/GrammaticalNumber) β€” Turns singular words to the plural and vice-versa in Swift.
* [HackMan](https://github.com/Cosmo/HackMan) β€” Stop writing boilerplate code yourself. Let hackman do it for you via the command line.
* [SpriteMap](https://github.com/Cosmo/SpriteMap) β€” SpriteMap helps you to extract sprites out of a sprite map. Written in Swift.
* [StringCase](https://github.com/Cosmo/StringCase) β€” Converts String to lowerCamelCase, UpperCamelCase and snake_case. Tested and written in Swift.
* [TinyConsole](https://github.com/Cosmo/TinyConsole) β€” TinyConsole is a micro-console that can help you log and display information inside an iOS application, where having a connection to a development computer is not possible.

## License

ISO8859 is released under the [MIT License](http://www.opensource.org/licenses/MIT).