Proyectos de Subversion Iphone Microlearning

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  StringEncoding+Alamofire.swift
3
//
4
//  Copyright (c) 2020 Alamofire Software Foundation (http://alamofire.org/)
5
//
6
//  Permission is hereby granted, free of charge, to any person obtaining a copy
7
//  of this software and associated documentation files (the "Software"), to deal
8
//  in the Software without restriction, including without limitation the rights
9
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
//  copies of the Software, and to permit persons to whom the Software is
11
//  furnished to do so, subject to the following conditions:
12
//
13
//  The above copyright notice and this permission notice shall be included in
14
//  all copies or substantial portions of the Software.
15
//
16
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
//  THE SOFTWARE.
23
//
24
 
25
import Foundation
26
 
27
extension String.Encoding {
28
    /// Creates an encoding from the IANA charset name.
29
    ///
30
    /// - Notes: These mappings match those [provided by CoreFoundation](https://opensource.apple.com/source/CF/CF-476.18/CFStringUtilities.c.auto.html)
31
    ///
32
    /// - Parameter name: IANA charset name.
33
    init?(ianaCharsetName name: String) {
34
        switch name.lowercased() {
35
        case "utf-8":
36
            self = .utf8
37
        case "iso-8859-1":
38
            self = .isoLatin1
39
        case "unicode-1-1", "iso-10646-ucs-2", "utf-16":
40
            self = .utf16
41
        case "utf-16be":
42
            self = .utf16BigEndian
43
        case "utf-16le":
44
            self = .utf16LittleEndian
45
        case "utf-32":
46
            self = .utf32
47
        case "utf-32be":
48
            self = .utf32BigEndian
49
        case "utf-32le":
50
            self = .utf32LittleEndian
51
        default:
52
            return nil
53
        }
54
    }
55
}