Skip to content

Instantly share code, notes, and snippets.

@YOCKOW
Last active December 19, 2024 07:18

String Encoding Names

  • Proposal: Not assigned yet
  • Author(s): YOCKOW
  • Review Manager: TBD
  • Status: Pitch
  • Implementation: Coming Soon

Introduction

This proposal lets String.Encoding be converted to/from names.

For example:

print(String.Encoding.utf8.name!) // Prints "UTF-8"
print(String.Encoding(name: "ISO-10646-UCS-4")! == .utf32) // Prints "true"

Motivation

The names for string encodings are commonly used certainly in computer networking and in other areas. You will often find them, for instance, in HTTP headers such as Content-Type: text/plain; charset=UTF-8 ("UTF-8" is the one). You will also find them in XML documents such as <?xml version="1.0" encoding="Shift_JIS" ?> ("Shift_JIS" is the one).

As a natural consequence, it is necessary to parse and to generate such names, for example, when you generate/receive HTTP response.

Current solution

Swift is missing such APIs, therefore we have to use functions defined in CoreFoundation (hereinafter called "CF") described as below.

extension String.Encoding {
  var nameInLegacyWay: String? {
    // 1. Convert `String.Encoding` value to the `CFStringEncoding` value.
    //    NOTE: The raw value of `String.Encoding` is the same with the value of `NSStringEncoding`,
    //          while it is not equal to the value of `CFStringEncoding`.
    let cfStrEncValue: CFStringEncoding = CFStringConvertNSStringEncodingToEncoding(self.rawValue)

    // 2. Convert it to the name where its type is `CFString?`
    let cfStrEncName: CFString? = CFStringConvertEncodingToIANACharSetName(cfStrEncValue)

    // 3. Convert `CFString` to Swift's `String`.
    //    NOTE: Unfortunately they can not be implicitly casted on Linux.
    let charsetName: String? = cfStrEncName.flatMap {
      let bufferSize = CFStringGetMaximumSizeForEncoding(
        CFStringGetLength($0),
        kCFStringEncodingASCII
      ) + 1
      let buffer = UnsafeMutablePointer<CChar>.allocate(capacity: bufferSize)
      defer {
        buffer.deallocate()
      }
      guard CFStringGetCString($0, buffer, bufferSize, kCFStringEncodingASCII) else {
        return nil
      }
      return String(utf8String: buffer)
    }
    return charsetName
  }

  init?(fromNameInLegacyWay charsetName: String) {
    // 1. Convert `String` to `CFString`
    let cfStrEncName: CFString = charsetName.withCString { (cString: UnsafePointer<CChar>) -> CFString in
      return CFStringCreateWithCString(nil, cString, kCFStringEncodingASCII)
    }

    // 2. Convert it to `CFStringEncoding`
    let cfStrEncValue: CFStringEncoding = CFStringConvertIANACharSetNameToEncoding(cfStrEncName)

    // 3. Check whether or not it's valid
    guard cfStrEncValue != kCFStringEncodingInvalidId else {
      return nil
    }

    // 4. Convert `CFStringEncoding` value to `String.Encoding` value
    self.init(rawValue: CFStringConvertEncodingToNSStringEncoding(cfStrEncValue))
  }
}

What's the problem of the current solution?

  • It is complicated to use multiple CF-functions to get a simple value. That's not Swifty.
  • CF-functions are legacy APIs that don't sometimes fit with the times.
  • CF APIs are officially unavailable from Swift on non-Darwin platforms.

Proposed solution

Solution is simple. We introduce a computed property that returns the name and an initializer that creates an instance from a name as below.

extension String.Encoding {
    public var name: String? { get }
    public init?(name: String)
}

Detailed design

This proposal refers to "Character Sets" published by IANA and to "The Encoding Standard" published by WHATWG. While the latter may claim the former could be replaced with it, it focuses on Web browsers (and their JavaScript APIs). Since Swift APIs should be a little more universal 1, here we consult both.

How to compromise

Not to be too arbitrary, this proposal stipulates these principles:

  • Focus on the encodings that are available publicly on swift-foundation at this point.
    • Exception: Consider compatibility for possible additions (or exposure) of ISO-8859-* encodings in the future. 2
  • Treat encodings as different ones if their rawValues differ.
  • Keep affordance: String.Encoding(name: someEncoding.name!) == someEncoding is supposed to be true.
  • CF compatibility is on a best-effort basis.

String.Encoding to Name

Here is a table that shows the proposed names corresponding to each encoding.

String.Encoding CF Name Ouput IANA WHATWG Proposed Name
.ascii us-ascii US-ASCII windows-1252 US-ASCII
.nextstep x-nextstep n/a x-user-defined x-nextstep
.japaneseEUC euc-jp EUC-JP EUC-JP EUC-JP
.utf8 utf-8 UTF-8 UTF-8 UTF-8
.isoLatin1 iso-8859-1 ISO-8859-1 windows-1252 ISO-8859-1
.symbol x-mac-symbol n/a x-user-defined x-mac-symbol
.nonLossyASCII n/a n/a n/a n/a
.shiftJIS cp932 n/a n/a Shift_JIS
.isoLatin2 iso-8859-2 ISO-8859-2 ISO-8859-2 ISO-8859-2
.unicode utf-16 UTF-16 UTF-16LE UTF-16
.windowsCP1251 windows-1251 windows-1251 windows-1251 windows-1251
.windowsCP1252 windows-1252 windows-1252 windows-1252 windows-1252
.windowsCP1253 windows-1253 windows-1253 windows-1253 windows-1253
.windowsCP1254 windows-1254 windows-1254 windows-1254 windows-1254
.windowsCP1250 windows-1250 windows-1250 windows-1250 windows-1250
.iso2022JP iso-2022-jp ISO-2022-JP ISO-2022-JP ISO-2022-JP
.macOSRoman macintosh macintosh macintosh macintosh
.utf16BigEndian utf-16be UTF-16BE UTF-16BE UTF-16BE
.utf16LittleEndian utf-16le UTF-16LE UTF-16LE UTF-16LE
.utf32 utf-32 UTF-32 n/a UTF-32
.utf32BigEndian utf-32be UTF-32BE n/a UTF-32BE
.utf32LittleEndian utf-32le UTF-32LE n/a UTF-32LE

What's changed from legacy names?

  • Upper-case letters are used if desirable.
  • String.Encoding.shiftJIS.name returns "Shift_JIS" since "CP932" is no longer available for a name of any encodings.

Name to String.Encoding

This proposal provides a rule for converting names to String.Encodings in order to conform the principles aforementioned. At first glance, it may look convoluted, but the results obtained from the rule are apprehensible.

The Rule

Definitions
  • 'input matches IANA charset "foo"' means that the given input matches the name or one of the aliases of IANA charset specified by "foo" using "Charset Alias Matching" method.
  • 'input matches WHATWG encoding "bar"' means that the given input matches one of the labels of WHATWG encoding specified by "bar" case-insensitively.
  • 'input is "baz"' means that the given input matches case-insensitively "baz".
Procedures
  1. If input matches IANA charset "US-ASCII" or "ISO_646.irv:1983", return .ascii.
  2. If input is "ascii", return .ascii.
  3. If input matches IANA charset "ISO-8859-1", return .isoLatin1.
  4. If input matches IANA charset "ISO-8859-9", return nil (or it should be .isoLatin5 if exists).
  5. If input matches IANA charset "TIS-620", return nil (or it should be .isoLatinThai if exists).
  6. If input matches IANA charset "ISO-10646-UCS-2", "UNICODE-1-1", or "UTF-16", return .unicode.
  7. If input is "ucs-2" or "unicode", return .unicode.
  8. If input matches one of WHATWG encodings below (except already matched above), return a corresponding String.Encoding instance :
    • "EUC-JP" → .japaneseEUC
    • "UTF-8" → .utf8
    • "Shift_JIS" → .shiftJIS
    • "ISO-8859-2" → .isoLatin2
    • "windows-1251" → .windowsCP1251
    • "windows-1252" → .windowsCP1252
    • "windows-1253" → .windowsCP1253
    • "windows-1254" → .windowsCP1254
    • "windows-1250" → .windowsCP1250
    • "ISO-2022-JP" → .iso2022JP
    • "macintosh" → .macOSRoman
    • "UTF-16BE" → .utf16BigEndian
    • "UTF-16LE" → .utf16LittleEndian
  9. If input matches one of IANA charsets below, return a corresponding String.Encoding instance:
    • "CP51932" → .japaneseEUC
    • "EUC-JP" → .japaneseEUC
    • "UTF-8" → .utf8
    • "Adobe-Symbol-Encoding" → .symbol
    • "Windows-31J" → .shiftJIS
    • "ISO-8859-2" → .isoLatin2
    • "windows-1251" → .windowsCP1251
    • "windows-1252" → .windowsCP1252
    • "ISO-8859-1-Windows-3.0-Latin-1" → .windowsCP1252
    • "ISO-8859-1-Windows-3.1-Latin-1" → .windowsCP1252
    • "windows-1253" → .windowsCP1253
    • "windows-1254" → .windowsCP1254
    • "ISO-8859-9-Windows-Latin-5" → .windowsCP1254
    • "windows-1250" → .windowsCP1250
    • "ISO-8859-2-Windows-Latin-2" → .windowsCP1250
    • "ISO-2022-JP" → .iso2022JP
    • "macintosh" → .macOSRoman
    • "UTF-32" → .utf32
    • "ISO-10646-UCS-4" → .utf32
    • "UTF-16BE" → .utf16BigEndian
    • "UTF-16LE" → .utf16LittleEndian
    • "UTF-32BE" → .utf32BigEndian
    • "UTF-32LE" → .utf32LittleEndian
  10. If input is "x-nextstep", return .nextstep.
  11. If input is "x-mac-symbol", return .symbol.
  12. If input matches none of the above, return nil.

NOTE: Actual implementation may contain some "by-passes" for the purpose of performance optimization.

Mapping

Here is a table that shows the results of the rule as mentioned above:

Name Input IANA WHATWG String.Encoding in Legacy Way Proposed String.Encoding
ANSI_X3.4-1968 US-ASCII windows-1252 .ascii .ascii
ANSI_X3.4-1986 US-ASCII n/a .ascii .ascii
ascii n/a windows-1252 .ascii .ascii
cp367 US-ASCII n/a .ascii .ascii
csASCII US-ASCII n/a .ascii .ascii
IBM367 US-ASCII n/a .ascii .ascii
iso-ir-6 US-ASCII n/a .ascii .ascii
ISO646-US US-ASCII n/a .ascii .ascii
ISO_646.irv:1983 ISO_646.irv:1983 n/a .ascii .ascii
ISO_646.irv:1991 US-ASCII n/a .ascii .ascii
us US-ASCII n/a .ascii .ascii
US-ASCII US-ASCII windows-1252 .ascii .ascii
csISO2IntlRefVersion ISO_646.irv:1983 n/a n/a .ascii
irv ISO_646.irv:1983 n/a n/a .ascii
iso-ir-2 ISO_646.irv:1983 n/a n/a .ascii
x-nextstep n/a x-user-defined .nextstep .nextstep
CP51932 CP51932 n/a .japaneseEUC .japaneseEUC
csCP51932 CP51932 n/a .japaneseEUC .japaneseEUC
csEUCPkdFmtJapanese EUC-JP EUC-JP .japaneseEUC .japaneseEUC
EUC-JP EUC-JP EUC-JP .japaneseEUC .japaneseEUC
Extended_UNIX_Code_Packed_Format_for_Japanese EUC-JP n/a .japaneseEUC .japaneseEUC
x-euc-jp n/a EUC-JP .japaneseEUC .japaneseEUC
unicode-1-1-utf-8 n/a UTF-8 .utf8 .utf8
unicode11utf8 n/a UTF-8 .utf8 .utf8
unicode20utf8 n/a UTF-8 .utf8 .utf8
UTF-8 UTF-8 UTF-8 .utf8 .utf8
utf8 n/a UTF-8 .utf8 .utf8
csUTF8 UTF-8 n/a n/a .utf8
x-unicode20utf8 n/a UTF-8 n/a .utf8
CP819 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
csISOLatin1 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
IBM819 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
ISO-8859-1 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
iso-ir-100 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
iso8859-1 n/a windows-1252 .isoLatin1 .isoLatin1
iso88591 n/a windows-1252 .isoLatin1 .isoLatin1
ISO_8859-1 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
ISO_8859-1:1987 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
l1 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
latin1 ISO-8859-1 windows-1252 .isoLatin1 .isoLatin1
Adobe-Symbol-Encoding Adobe-Symbol-Encoding n/a .symbol .symbol
x-mac-symbol n/a x-user-defined .symbol .symbol
csHPPSMath Adobe-Symbol-Encoding n/a n/a .symbol
csShiftJIS Shift_JIS Shift_JIS .shiftJIS .shiftJIS
csWindows31J Windows-31J n/a .shiftJIS .shiftJIS
ms932 n/a Shift_JIS .shiftJIS .shiftJIS
MS_Kanji Shift_JIS Shift_JIS .shiftJIS .shiftJIS
shift-jis n/a Shift_JIS .shiftJIS .shiftJIS
sjis n/a Shift_JIS .shiftJIS .shiftJIS
Windows-31J Windows-31J Shift_JIS .shiftJIS .shiftJIS
x-sjis n/a Shift_JIS .shiftJIS .shiftJIS
Shift_JIS Shift_JIS Shift_JIS String.Encoding(rawValue: 0x80000a01) .shiftJIS
csISOLatin2 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
ISO-8859-2 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
iso-ir-101 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
iso8859-2 n/a ISO-8859-2 .isoLatin2 .isoLatin2
iso88592 n/a ISO-8859-2 .isoLatin2 .isoLatin2
ISO_8859-2 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
ISO_8859-2:1987 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
l2 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
latin2 ISO-8859-2 ISO-8859-2 .isoLatin2 .isoLatin2
csUnicode ISO-10646-UCS-2 UTF-16LE .unicode .unicode
csUnicode11 UNICODE-1-1 n/a .unicode .unicode
ISO-10646-UCS-2 ISO-10646-UCS-2 UTF-16LE .unicode .unicode
ucs-2 n/a UTF-16LE .unicode .unicode
unicode n/a UTF-16LE .unicode .unicode
UNICODE-1-1 UNICODE-1-1 n/a .unicode .unicode
UTF-16 UTF-16 UTF-16LE .unicode .unicode
csUTF16 UTF-16 n/a n/a .unicode
cp1251 n/a windows-1251 .windowsCP1251 .windowsCP1251
windows-1251 windows-1251 windows-1251 .windowsCP1251 .windowsCP1251
x-cp1251 n/a windows-1251 .windowsCP1251 .windowsCP1251
cswindows1251 windows-1251 n/a n/a .windowsCP1251
ISO-8859-1-Windows-3.0-Latin-1 ISO-8859-1-Windows-3.0-Latin-1 n/a .isoLatin1 .windowsCP1252
ISO-8859-1-Windows-3.1-Latin-1 ISO-8859-1-Windows-3.1-Latin-1 n/a .isoLatin1 .windowsCP1252
cp1252 n/a windows-1252 .windowsCP1252 .windowsCP1252
csWindows31Latin1 ISO-8859-1-Windows-3.1-Latin-1 n/a .windowsCP1252 .windowsCP1252
windows-1252 windows-1252 windows-1252 .windowsCP1252 .windowsCP1252
cswindows1252 windows-1252 n/a n/a .windowsCP1252
csWindows30Latin1 ISO-8859-1-Windows-3.0-Latin-1 n/a n/a .windowsCP1252
x-cp1252 n/a windows-1252 n/a .windowsCP1252
cp1253 n/a windows-1253 .windowsCP1253 .windowsCP1253
windows-1253 windows-1253 windows-1253 .windowsCP1253 .windowsCP1253
cswindows1253 windows-1253 n/a n/a .windowsCP1253
x-cp1253 n/a windows-1253 n/a .windowsCP1253
cp1254 n/a windows-1254 .windowsCP1254 .windowsCP1254
csWindows31Latin5 ISO-8859-9-Windows-Latin-5 n/a .windowsCP1254 .windowsCP1254
windows-1254 windows-1254 windows-1254 .windowsCP1254 .windowsCP1254
ISO-8859-9-Windows-Latin-5 ISO-8859-9-Windows-Latin-5 n/a String.Encoding(rawValue: 0x80000209) .windowsCP1254
cswindows1254 windows-1254 n/a n/a .windowsCP1254
x-cp1254 n/a windows-1254 n/a .windowsCP1254
ISO-8859-2-Windows-Latin-2 ISO-8859-2-Windows-Latin-2 n/a .isoLatin2 .windowsCP1250
cp1250 n/a windows-1250 .windowsCP1250 .windowsCP1250
csWindows31Latin2 ISO-8859-2-Windows-Latin-2 n/a .windowsCP1250 .windowsCP1250
windows-1250 windows-1250 windows-1250 .windowsCP1250 .windowsCP1250
x-cp1250 n/a windows-1250 .windowsCP1250 .windowsCP1250
cswindows1250 windows-1250 n/a n/a .windowsCP1250
csISO2022JP ISO-2022-JP ISO-2022-JP .iso2022JP .iso2022JP
ISO-2022-JP ISO-2022-JP ISO-2022-JP .iso2022JP .iso2022JP
csMacintosh macintosh macintosh .macOSRoman .macOSRoman
mac macintosh macintosh .macOSRoman .macOSRoman
macintosh macintosh macintosh .macOSRoman .macOSRoman
x-mac-roman n/a macintosh .macOSRoman .macOSRoman
csUCS4 ISO-10646-UCS-4 n/a .utf32 .utf32
ISO-10646-UCS-4 ISO-10646-UCS-4 n/a .utf32 .utf32
UTF-32 UTF-32 n/a .utf32 .utf32
csUTF32 UTF-32 n/a n/a .utf32
unicodefffe n/a UTF-16BE .utf16BigEndian .utf16BigEndian
UTF-16BE UTF-16BE UTF-16BE .utf16BigEndian .utf16BigEndian
csUTF16BE UTF-16BE n/a n/a .utf16BigEndian
unicodefeff n/a UTF-16LE .utf16LittleEndian .utf16LittleEndian
UTF-16LE UTF-16LE UTF-16LE .utf16LittleEndian .utf16LittleEndian
csUTF16LE UTF-16LE n/a n/a .utf16LittleEndian
UTF-32BE UTF-32BE n/a .utf32BigEndian .utf32BigEndian
csUTF32BE UTF-32BE n/a n/a .utf32BigEndian
UTF-32LE UTF-32LE n/a .utf32LittleEndian .utf32LittleEndian
csUTF32LE UTF-32LE n/a n/a .utf32LittleEndian
cp932 n/a n/a .shiftJIS n/a
korean KS_C_5601-1987 EUC-KR String.Encoding(rawValue: 0x80000003) n/a
arabic ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000004) n/a
hebrew ISO-8859-8 ISO-8859-8 String.Encoding(rawValue: 0x80000005) n/a
greek ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000006) n/a
cyrillic ISO-8859-5 ISO-8859-5 String.Encoding(rawValue: 0x80000007) n/a
x-mac-cyrillic n/a x-mac-cyrillic String.Encoding(rawValue: 0x80000007) n/a
x-mac-ukrainian n/a x-mac-cyrillic String.Encoding(rawValue: 0x80000098) n/a
csISOLatin3 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
ISO-8859-3 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
iso-ir-109 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
iso8859-3 n/a ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
iso88593 n/a ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
ISO_8859-3 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
ISO_8859-3:1988 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
l3 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
latin3 ISO-8859-3 ISO-8859-3 String.Encoding(rawValue: 0x80000203) n/a
csISOLatin4 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
ISO-8859-4 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
iso-ir-110 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
iso8859-4 n/a ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
iso88594 n/a ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
ISO_8859-4 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
ISO_8859-4:1988 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
l4 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
latin4 ISO-8859-4 ISO-8859-4 String.Encoding(rawValue: 0x80000204) n/a
csISOLatinCyrillic ISO-8859-5 ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
ISO-8859-5 ISO-8859-5 ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
iso-ir-144 ISO-8859-5 ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
iso8859-5 n/a ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
iso88595 n/a ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
ISO_8859-5 ISO-8859-5 ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
ISO_8859-5:1988 ISO-8859-5 ISO-8859-5 String.Encoding(rawValue: 0x80000205) n/a
ASMO-708 ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
csISO88596E ISO-8859-6-E ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
csISO88596I ISO-8859-6-I ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
csISOLatinArabic ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
ECMA-114 ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
ISO-8859-6 ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
ISO-8859-6-E ISO-8859-6-E ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
ISO-8859-6-I ISO-8859-6-I ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
iso-ir-127 ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
iso8859-6 n/a ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
iso88596 n/a ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
ISO_8859-6 ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
ISO_8859-6-E ISO-8859-6-E n/a String.Encoding(rawValue: 0x80000206) n/a
ISO_8859-6-I ISO-8859-6-I n/a String.Encoding(rawValue: 0x80000206) n/a
ISO_8859-6:1987 ISO-8859-6 ISO-8859-6 String.Encoding(rawValue: 0x80000206) n/a
csISOLatinGreek ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
ECMA-118 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
ELOT_928 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
greek8 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
ISO-8859-7 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
iso-ir-126 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
iso8859-7 n/a ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
iso88597 n/a ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
ISO_8859-7 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
ISO_8859-7:1987 ISO-8859-7 ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
sun_eu_greek n/a ISO-8859-7 String.Encoding(rawValue: 0x80000207) n/a
csISO88598E ISO-8859-8-E ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
csISO88598I ISO-8859-8-I ISO-8859-8-I String.Encoding(rawValue: 0x80000208) n/a
csISOLatinHebrew ISO-8859-8 ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
ISO-8859-8 ISO-8859-8 ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
ISO-8859-8-E ISO-8859-8-E ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
ISO-8859-8-I ISO-8859-8-I ISO-8859-8-I String.Encoding(rawValue: 0x80000208) n/a
iso-ir-138 ISO-8859-8 ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
iso8859-8 n/a ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
iso88598 n/a ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
ISO_8859-8 ISO-8859-8 ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
ISO_8859-8-E ISO-8859-8-E n/a String.Encoding(rawValue: 0x80000208) n/a
ISO_8859-8-I ISO-8859-8-I n/a String.Encoding(rawValue: 0x80000208) n/a
ISO_8859-8:1988 ISO-8859-8 ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
logical n/a ISO-8859-8-I String.Encoding(rawValue: 0x80000208) n/a
visual n/a ISO-8859-8 String.Encoding(rawValue: 0x80000208) n/a
csISOLatin5 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
ISO-8859-9 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
iso-ir-148 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
iso8859-9 n/a windows-1254 String.Encoding(rawValue: 0x80000209) n/a
iso88599 n/a windows-1254 String.Encoding(rawValue: 0x80000209) n/a
ISO_8859-9 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
ISO_8859-9:1989 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
l5 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
latin5 ISO-8859-9 windows-1254 String.Encoding(rawValue: 0x80000209) n/a
csISOLatin6 ISO-8859-10 ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
ISO-8859-10 ISO-8859-10 ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
iso-ir-157 ISO-8859-10 ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
iso8859-10 n/a ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
iso885910 n/a ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
ISO_8859-10:1992 ISO-8859-10 n/a String.Encoding(rawValue: 0x8000020a) n/a
l6 ISO-8859-10 ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
latin6 ISO-8859-10 ISO-8859-10 String.Encoding(rawValue: 0x8000020a) n/a
ISO-8859-11 TIS-620 windows-874 String.Encoding(rawValue: 0x8000020b) n/a
ISO-8859-13 ISO-8859-13 ISO-8859-13 String.Encoding(rawValue: 0x8000020d) n/a
iso8859-13 n/a ISO-8859-13 String.Encoding(rawValue: 0x8000020d) n/a
iso885913 n/a ISO-8859-13 String.Encoding(rawValue: 0x8000020d) n/a
ISO-8859-14 ISO-8859-14 ISO-8859-14 String.Encoding(rawValue: 0x8000020e) n/a
csisolatin9 n/a ISO-8859-15 String.Encoding(rawValue: 0x8000020f) n/a
ISO-8859-15 ISO-8859-15 ISO-8859-15 String.Encoding(rawValue: 0x8000020f) n/a
iso8859-15 n/a ISO-8859-15 String.Encoding(rawValue: 0x8000020f) n/a
iso885915 n/a ISO-8859-15 String.Encoding(rawValue: 0x8000020f) n/a
ISO_8859-15 ISO-8859-15 ISO-8859-15 String.Encoding(rawValue: 0x8000020f) n/a
l9 n/a ISO-8859-15 String.Encoding(rawValue: 0x8000020f) n/a
Latin-9 ISO-8859-15 n/a String.Encoding(rawValue: 0x8000020f) n/a
ISO-8859-16 ISO-8859-16 ISO-8859-16 String.Encoding(rawValue: 0x80000210) n/a
iso-ir-226 ISO-8859-16 n/a String.Encoding(rawValue: 0x80000210) n/a
ISO_8859-16 ISO-8859-16 n/a String.Encoding(rawValue: 0x80000210) n/a
ISO_8859-16:2001 ISO-8859-16 n/a String.Encoding(rawValue: 0x80000210) n/a
l10 ISO-8859-16 n/a String.Encoding(rawValue: 0x80000210) n/a
latin10 ISO-8859-16 n/a String.Encoding(rawValue: 0x80000210) n/a
437 IBM437 n/a String.Encoding(rawValue: 0x80000400) n/a
cp437 IBM437 n/a String.Encoding(rawValue: 0x80000400) n/a
csPC8CodePage437 IBM437 n/a String.Encoding(rawValue: 0x80000400) n/a
IBM437 IBM437 n/a String.Encoding(rawValue: 0x80000400) n/a
cp775 IBM775 n/a String.Encoding(rawValue: 0x80000406) n/a
csPC775Baltic IBM775 n/a String.Encoding(rawValue: 0x80000406) n/a
IBM775 IBM775 n/a String.Encoding(rawValue: 0x80000406) n/a
850 IBM850 n/a String.Encoding(rawValue: 0x80000410) n/a
cp850 IBM850 n/a String.Encoding(rawValue: 0x80000410) n/a
csPC850Multilingual IBM850 n/a String.Encoding(rawValue: 0x80000410) n/a
IBM850 IBM850 n/a String.Encoding(rawValue: 0x80000410) n/a
851 IBM851 n/a String.Encoding(rawValue: 0x80000411) n/a
cp851 IBM851 n/a String.Encoding(rawValue: 0x80000411) n/a
IBM851 IBM851 n/a String.Encoding(rawValue: 0x80000411) n/a
852 IBM852 n/a String.Encoding(rawValue: 0x80000412) n/a
cp852 IBM852 n/a String.Encoding(rawValue: 0x80000412) n/a
csPCp852 IBM852 n/a String.Encoding(rawValue: 0x80000412) n/a
IBM852 IBM852 n/a String.Encoding(rawValue: 0x80000412) n/a
855 IBM855 n/a String.Encoding(rawValue: 0x80000413) n/a
cp855 IBM855 n/a String.Encoding(rawValue: 0x80000413) n/a
csIBM855 IBM855 n/a String.Encoding(rawValue: 0x80000413) n/a
IBM855 IBM855 n/a String.Encoding(rawValue: 0x80000413) n/a
857 IBM857 n/a String.Encoding(rawValue: 0x80000414) n/a
cp857 IBM857 n/a String.Encoding(rawValue: 0x80000414) n/a
csIBM857 IBM857 n/a String.Encoding(rawValue: 0x80000414) n/a
IBM857 IBM857 n/a String.Encoding(rawValue: 0x80000414) n/a
860 IBM860 n/a String.Encoding(rawValue: 0x80000415) n/a
cp860 IBM860 n/a String.Encoding(rawValue: 0x80000415) n/a
csIBM860 IBM860 n/a String.Encoding(rawValue: 0x80000415) n/a
IBM860 IBM860 n/a String.Encoding(rawValue: 0x80000415) n/a
861 IBM861 n/a String.Encoding(rawValue: 0x80000416) n/a
cp-is IBM861 n/a String.Encoding(rawValue: 0x80000416) n/a
cp861 IBM861 n/a String.Encoding(rawValue: 0x80000416) n/a
csIBM861 IBM861 n/a String.Encoding(rawValue: 0x80000416) n/a
IBM861 IBM861 n/a String.Encoding(rawValue: 0x80000416) n/a
862 IBM862 n/a String.Encoding(rawValue: 0x80000417) n/a
cp862 IBM862 n/a String.Encoding(rawValue: 0x80000417) n/a
csPC862LatinHebrew IBM862 n/a String.Encoding(rawValue: 0x80000417) n/a
IBM862 IBM862 n/a String.Encoding(rawValue: 0x80000417) n/a
863 IBM863 n/a String.Encoding(rawValue: 0x80000418) n/a
cp863 IBM863 n/a String.Encoding(rawValue: 0x80000418) n/a
csIBM863 IBM863 n/a String.Encoding(rawValue: 0x80000418) n/a
IBM863 IBM863 n/a String.Encoding(rawValue: 0x80000418) n/a
cp864 IBM864 n/a String.Encoding(rawValue: 0x80000419) n/a
csIBM864 IBM864 n/a String.Encoding(rawValue: 0x80000419) n/a
IBM864 IBM864 n/a String.Encoding(rawValue: 0x80000419) n/a
865 IBM865 n/a String.Encoding(rawValue: 0x8000041a) n/a
cp865 IBM865 n/a String.Encoding(rawValue: 0x8000041a) n/a
csIBM865 IBM865 n/a String.Encoding(rawValue: 0x8000041a) n/a
IBM865 IBM865 n/a String.Encoding(rawValue: 0x8000041a) n/a
866 IBM866 IBM866 String.Encoding(rawValue: 0x8000041b) n/a
cp866 IBM866 IBM866 String.Encoding(rawValue: 0x8000041b) n/a
csIBM866 IBM866 IBM866 String.Encoding(rawValue: 0x8000041b) n/a
IBM866 IBM866 IBM866 String.Encoding(rawValue: 0x8000041b) n/a
869 IBM869 n/a String.Encoding(rawValue: 0x8000041c) n/a
cp-gr IBM869 n/a String.Encoding(rawValue: 0x8000041c) n/a
cp869 IBM869 n/a String.Encoding(rawValue: 0x8000041c) n/a
csIBM869 IBM869 n/a String.Encoding(rawValue: 0x8000041c) n/a
IBM869 IBM869 n/a String.Encoding(rawValue: 0x8000041c) n/a
dos-874 n/a windows-874 String.Encoding(rawValue: 0x8000041d) n/a
TIS-620 TIS-620 windows-874 String.Encoding(rawValue: 0x8000041d) n/a
windows-874 windows-874 windows-874 String.Encoding(rawValue: 0x8000041d) n/a
CP936 GBK n/a String.Encoding(rawValue: 0x80000421) n/a
MS936 GBK n/a String.Encoding(rawValue: 0x80000421) n/a
windows-936 GBK n/a String.Encoding(rawValue: 0x80000421) n/a
csKSC56011987 KS_C_5601-1987 EUC-KR String.Encoding(rawValue: 0x80000422) n/a
iso-ir-149 KS_C_5601-1987 EUC-KR String.Encoding(rawValue: 0x80000422) n/a
KS_C_5601-1987 KS_C_5601-1987 EUC-KR String.Encoding(rawValue: 0x80000422) n/a
KS_C_5601-1989 KS_C_5601-1987 EUC-KR String.Encoding(rawValue: 0x80000422) n/a
ksc5601 n/a EUC-KR String.Encoding(rawValue: 0x80000422) n/a
KSC_5601 KS_C_5601-1987 EUC-KR String.Encoding(rawValue: 0x80000422) n/a
windows-949 n/a EUC-KR String.Encoding(rawValue: 0x80000422) n/a
csBig5 Big5 Big5 String.Encoding(rawValue: 0x80000423) n/a
cp1255 n/a windows-1255 String.Encoding(rawValue: 0x80000505) n/a
windows-1255 windows-1255 windows-1255 String.Encoding(rawValue: 0x80000505) n/a
cp1256 n/a windows-1256 String.Encoding(rawValue: 0x80000506) n/a
windows-1256 windows-1256 windows-1256 String.Encoding(rawValue: 0x80000506) n/a
cp1257 n/a windows-1257 String.Encoding(rawValue: 0x80000507) n/a
windows-1257 windows-1257 windows-1257 String.Encoding(rawValue: 0x80000507) n/a
cp1258 n/a windows-1258 String.Encoding(rawValue: 0x80000508) n/a
windows-1258 windows-1258 windows-1258 String.Encoding(rawValue: 0x80000508) n/a
csHalfWidthKatakana JIS_X0201 n/a String.Encoding(rawValue: 0x80000620) n/a
JIS_X0201 JIS_X0201 n/a String.Encoding(rawValue: 0x80000620) n/a
X0201 JIS_X0201 n/a String.Encoding(rawValue: 0x80000620) n/a
csISO87JISX0208 JIS_C6226-1983 n/a String.Encoding(rawValue: 0x80000622) n/a
JIS_C6226-1983 JIS_C6226-1983 n/a String.Encoding(rawValue: 0x80000622) n/a
JIS_X0208-1983 JIS_C6226-1983 n/a String.Encoding(rawValue: 0x80000622) n/a
x0208 JIS_C6226-1983 n/a String.Encoding(rawValue: 0x80000622) n/a
csISO159JISX02121990 JIS_X0212-1990 n/a String.Encoding(rawValue: 0x80000623) n/a
iso-ir-159 JIS_X0212-1990 n/a String.Encoding(rawValue: 0x80000623) n/a
JIS_X0212-1990 JIS_X0212-1990 n/a String.Encoding(rawValue: 0x80000623) n/a
x0212 JIS_X0212-1990 n/a String.Encoding(rawValue: 0x80000623) n/a
csISO42JISC62261978 JIS_C6226-1978 n/a String.Encoding(rawValue: 0x80000624) n/a
iso-ir-42 JIS_C6226-1978 n/a String.Encoding(rawValue: 0x80000624) n/a
JIS_C6226-1978 JIS_C6226-1978 n/a String.Encoding(rawValue: 0x80000624) n/a
GBK GBK GBK String.Encoding(rawValue: 0x80000631) n/a
x-gbk n/a GBK String.Encoding(rawValue: 0x80000631) n/a
GB18030 GB18030 gb18030 String.Encoding(rawValue: 0x80000632) n/a
csISO2022JP2 ISO-2022-JP-2 n/a String.Encoding(rawValue: 0x80000821) n/a
ISO-2022-JP-2 ISO-2022-JP-2 n/a String.Encoding(rawValue: 0x80000821) n/a
csJISEncoding JIS_Encoding n/a String.Encoding(rawValue: 0x80000822) n/a
JIS_Encoding JIS_Encoding n/a String.Encoding(rawValue: 0x80000822) n/a
csISO2022CN ISO-2022-CN n/a String.Encoding(rawValue: 0x80000830) n/a
ISO-2022-CN ISO-2022-CN replacement String.Encoding(rawValue: 0x80000830) n/a
ISO-2022-CN-EXT ISO-2022-CN-EXT replacement String.Encoding(rawValue: 0x80000831) n/a
csISO2022KR ISO-2022-KR replacement String.Encoding(rawValue: 0x80000840) n/a
ISO-2022-KR ISO-2022-KR replacement String.Encoding(rawValue: 0x80000840) n/a
chinese GB_2312-80 GBK String.Encoding(rawValue: 0x80000930) n/a
csGB2312 GB2312 GBK String.Encoding(rawValue: 0x80000930) n/a
csISO58GB231280 GB_2312-80 GBK String.Encoding(rawValue: 0x80000930) n/a
GB2312 GB2312 GBK String.Encoding(rawValue: 0x80000930) n/a
gb_2312 n/a GBK String.Encoding(rawValue: 0x80000930) n/a
GB_2312-80 GB_2312-80 GBK String.Encoding(rawValue: 0x80000930) n/a
iso-ir-58 GB_2312-80 GBK String.Encoding(rawValue: 0x80000930) n/a
csEUCKR EUC-KR EUC-KR String.Encoding(rawValue: 0x80000940) n/a
EUC-KR EUC-KR EUC-KR String.Encoding(rawValue: 0x80000940) n/a
csKOI8R KOI8-R KOI8-R String.Encoding(rawValue: 0x80000a02) n/a
koi n/a KOI8-R String.Encoding(rawValue: 0x80000a02) n/a
koi8 n/a KOI8-R String.Encoding(rawValue: 0x80000a02) n/a
KOI8-R KOI8-R KOI8-R String.Encoding(rawValue: 0x80000a02) n/a
koi8_r n/a KOI8-R String.Encoding(rawValue: 0x80000a02) n/a
Big5 Big5 Big5 String.Encoding(rawValue: 0x80000a03) n/a
HZ-GB-2312 HZ-GB-2312 replacement String.Encoding(rawValue: 0x80000a05) n/a
Big5-HKSCS Big5-HKSCS Big5 String.Encoding(rawValue: 0x80000a06) n/a
cn-big5 n/a Big5 String.Encoding(rawValue: 0x80000a06) n/a
x-x-big5 n/a Big5 String.Encoding(rawValue: 0x80000a06) n/a
csVISCII VISCII n/a String.Encoding(rawValue: 0x80000a07) n/a
VISCII VISCII n/a String.Encoding(rawValue: 0x80000a07) n/a
koi8-ru n/a KOI8-U String.Encoding(rawValue: 0x80000a08) n/a
KOI8-U KOI8-U KOI8-U String.Encoding(rawValue: 0x80000a08) n/a
cp037 IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
csIBM037 IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
ebcdic-cp-ca IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
ebcdic-cp-nl IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
ebcdic-cp-us IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
ebcdic-cp-wt IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
IBM037 IBM037 n/a String.Encoding(rawValue: 0x80000c02) n/a
csUnicode11UTF7 UNICODE-1-1-UTF-7 n/a String.Encoding(rawValue: 0x84000100) n/a
UNICODE-1-1-UTF-7 UNICODE-1-1-UTF-7 n/a String.Encoding(rawValue: 0x84000100) n/a
UTF-7 UTF-7 n/a String.Encoding(rawValue: 0x84000100) n/a
904 IBM904 n/a n/a n/a
Adobe-Standard-Encoding Adobe-Standard-Encoding n/a n/a n/a
Ami-1251 Amiga-1251 n/a n/a n/a
Ami1251 Amiga-1251 n/a n/a n/a
Amiga-1251 Amiga-1251 n/a n/a n/a
Amiga1251 Amiga-1251 n/a n/a n/a
ANSI_X3.110-1983 ANSI_X3.110-1983 n/a n/a n/a
arabic7 ASMO_449 n/a n/a n/a
ASMO_449 ASMO_449 n/a n/a n/a
BOCU-1 BOCU-1 n/a n/a n/a
BRF BRF n/a n/a n/a
BS_4730 BS_4730 n/a n/a n/a
BS_viewdata BS_viewdata n/a n/a n/a
ca CSA_Z243.4-1985-1 n/a n/a n/a
CCSID00858 IBM00858 n/a n/a n/a
CCSID00924 IBM00924 n/a n/a n/a
CCSID01140 IBM01140 n/a n/a n/a
CCSID01141 IBM01141 n/a n/a n/a
CCSID01142 IBM01142 n/a n/a n/a
CCSID01143 IBM01143 n/a n/a n/a
CCSID01144 IBM01144 n/a n/a n/a
CCSID01145 IBM01145 n/a n/a n/a
CCSID01146 IBM01146 n/a n/a n/a
CCSID01147 IBM01147 n/a n/a n/a
CCSID01148 IBM01148 n/a n/a n/a
CCSID01149 IBM01149 n/a n/a n/a
CESU-8 CESU-8 n/a n/a n/a
cn GB_1988-80 n/a n/a n/a
cp-ar IBM868 n/a n/a n/a
CP00858 IBM00858 n/a n/a n/a
CP00924 IBM00924 n/a n/a n/a
CP01140 IBM01140 n/a n/a n/a
CP01141 IBM01141 n/a n/a n/a
CP01142 IBM01142 n/a n/a n/a
CP01143 IBM01143 n/a n/a n/a
CP01144 IBM01144 n/a n/a n/a
CP01145 IBM01145 n/a n/a n/a
CP01146 IBM01146 n/a n/a n/a
CP01147 IBM01147 n/a n/a n/a
CP01148 IBM01148 n/a n/a n/a
CP01149 IBM01149 n/a n/a n/a
cp038 IBM038 n/a n/a n/a
CP1026 IBM1026 n/a n/a n/a
CP154 PTCP154 n/a n/a n/a
CP273 IBM273 n/a n/a n/a
CP274 IBM274 n/a n/a n/a
cp275 IBM275 n/a n/a n/a
CP278 IBM278 n/a n/a n/a
CP280 IBM280 n/a n/a n/a
cp281 IBM281 n/a n/a n/a
CP284 IBM284 n/a n/a n/a
CP285 IBM285 n/a n/a n/a
cp290 IBM290 n/a n/a n/a
cp297 IBM297 n/a n/a n/a
cp420 IBM420 n/a n/a n/a
cp423 IBM423 n/a n/a n/a
cp424 IBM424 n/a n/a n/a
CP500 IBM500 n/a n/a n/a
CP50220 CP50220 n/a n/a n/a
CP868 IBM868 n/a n/a n/a
CP870 IBM870 n/a n/a n/a
CP871 IBM871 n/a n/a n/a
cp880 IBM880 n/a n/a n/a
cp891 IBM891 n/a n/a n/a
cp903 IBM903 n/a n/a n/a
cp904 IBM904 n/a n/a n/a
CP905 IBM905 n/a n/a n/a
CP918 IBM918 n/a n/a n/a
csa7-1 CSA_Z243.4-1985-1 n/a n/a n/a
csa7-2 CSA_Z243.4-1985-2 n/a n/a n/a
csa71 CSA_Z243.4-1985-1 n/a n/a n/a
csa72 CSA_Z243.4-1985-2 n/a n/a n/a
CSA_T500-1983 ANSI_X3.110-1983 n/a n/a n/a
CSA_Z243.4-1985-1 CSA_Z243.4-1985-1 n/a n/a n/a
CSA_Z243.4-1985-2 CSA_Z243.4-1985-2 n/a n/a n/a
CSA_Z243.4-1985-gr CSA_Z243.4-1985-gr n/a n/a n/a
csAdobeStandardEncoding Adobe-Standard-Encoding n/a n/a n/a
csAmiga1251 Amiga-1251 n/a n/a n/a
csBig5HKSCS Big5-HKSCS n/a n/a n/a
csBOCU-1 BOCU-1 n/a n/a n/a
csBOCU1 BOCU-1 n/a n/a n/a
csBRF BRF n/a n/a n/a
csCESU-8 CESU-8 n/a n/a n/a
csCESU8 CESU-8 n/a n/a n/a
csCP50220 CP50220 n/a n/a n/a
csDECMCS DEC-MCS n/a n/a n/a
csDKUS dk-us n/a n/a n/a
csEBCDICATDEA EBCDIC-AT-DE-A n/a n/a n/a
csEBCDICCAFR EBCDIC-CA-FR n/a n/a n/a
csEBCDICDKNO EBCDIC-DK-NO n/a n/a n/a
csEBCDICDKNOA EBCDIC-DK-NO-A n/a n/a n/a
csEBCDICES EBCDIC-ES n/a n/a n/a
csEBCDICESA EBCDIC-ES-A n/a n/a n/a
csEBCDICESS EBCDIC-ES-S n/a n/a n/a
csEBCDICFISE EBCDIC-FI-SE n/a n/a n/a
csEBCDICFISEA EBCDIC-FI-SE-A n/a n/a n/a
csEBCDICFR EBCDIC-FR n/a n/a n/a
csEBCDICIT EBCDIC-IT n/a n/a n/a
csEBCDICPT EBCDIC-PT n/a n/a n/a
csEBCDICUK EBCDIC-UK n/a n/a n/a
csEBCDICUS EBCDIC-US n/a n/a n/a
csEUCFixWidJapanese Extended_UNIX_Code_Fixed_Width_for_Japanese n/a n/a n/a
csGB18030 GB18030 n/a n/a n/a
csGBK GBK n/a n/a n/a
csHPDesktop HP-DeskTop n/a n/a n/a
csHPLegal HP-Legal n/a n/a n/a
csHPMath8 HP-Math8 n/a n/a n/a
csHPPiFont HP-Pi-font n/a n/a n/a
csHPRoman8 hp-roman8 n/a n/a n/a
csIBBM904 IBM904 n/a n/a n/a
csIBM00858 IBM00858 n/a n/a n/a
csIBM00924 IBM00924 n/a n/a n/a
csIBM01140 IBM01140 n/a n/a n/a
csIBM01141 IBM01141 n/a n/a n/a
csIBM01142 IBM01142 n/a n/a n/a
csIBM01143 IBM01143 n/a n/a n/a
csIBM01144 IBM01144 n/a n/a n/a
csIBM01145 IBM01145 n/a n/a n/a
csIBM01146 IBM01146 n/a n/a n/a
csIBM01147 IBM01147 n/a n/a n/a
csIBM01148 IBM01148 n/a n/a n/a
csIBM01149 IBM01149 n/a n/a n/a
csIBM038 IBM038 n/a n/a n/a
csIBM1026 IBM1026 n/a n/a n/a
csIBM1047 IBM1047 n/a n/a n/a
csIBM273 IBM273 n/a n/a n/a
csIBM274 IBM274 n/a n/a n/a
csIBM275 IBM275 n/a n/a n/a
csIBM277 IBM277 n/a n/a n/a
csIBM278 IBM278 n/a n/a n/a
csIBM280 IBM280 n/a n/a n/a
csIBM281 IBM281 n/a n/a n/a
csIBM284 IBM284 n/a n/a n/a
csIBM285 IBM285 n/a n/a n/a
csIBM290 IBM290 n/a n/a n/a
csIBM297 IBM297 n/a n/a n/a
csIBM420 IBM420 n/a n/a n/a
csIBM423 IBM423 n/a n/a n/a
csIBM424 IBM424 n/a n/a n/a
csIBM500 IBM500 n/a n/a n/a
csIBM851 IBM851 n/a n/a n/a
csIBM868 IBM868 n/a n/a n/a
csIBM870 IBM870 n/a n/a n/a
csIBM871 IBM871 n/a n/a n/a
csIBM880 IBM880 n/a n/a n/a
csIBM891 IBM891 n/a n/a n/a
csIBM903 IBM903 n/a n/a n/a
csIBM905 IBM905 n/a n/a n/a
csIBM918 IBM918 n/a n/a n/a
csIBMEBCDICATDE EBCDIC-AT-DE n/a n/a n/a
csIBMSymbols IBM-Symbols n/a n/a n/a
csIBMThai IBM-Thai n/a n/a n/a
csINVARIANT INVARIANT n/a n/a n/a
csISO102T617bit T.61-7bit n/a n/a n/a
csISO10367Box ISO_10367-box n/a n/a n/a
csISO103T618bit T.61-8bit n/a n/a n/a
csISO10646UTF1 ISO-10646-UTF-1 n/a n/a n/a
csISO10Swedish SEN_850200_B n/a n/a n/a
csISO111ECMACyrillic ECMA-cyrillic n/a n/a n/a
csISO115481 ISO-11548-1 n/a n/a n/a
csISO11SwedishForNames SEN_850200_C n/a n/a n/a
csISO121Canadian1 CSA_Z243.4-1985-1 n/a n/a n/a
csISO122Canadian2 CSA_Z243.4-1985-2 n/a n/a n/a
csISO123CSAZ24341985gr CSA_Z243.4-1985-gr n/a n/a n/a
csISO128T101G2 T.101-G2 n/a n/a n/a
csISO139CSN369103 CSN_369103 n/a n/a n/a
csISO13JISC6220jp JIS_C6220-1969-jp n/a n/a n/a
csISO141JUSIB1002 JUS_I.B1.002 n/a n/a n/a
csISO143IECP271 IEC_P27-1 n/a n/a n/a
csISO146Serbian JUS_I.B1.003-serb n/a n/a n/a
csISO147Macedonian JUS_I.B1.003-mac n/a n/a n/a
csISO14JISC6220ro JIS_C6220-1969-ro n/a n/a n/a
csISO150 greek-ccitt n/a n/a n/a
csISO150GreekCCITT greek-ccitt n/a n/a n/a
csISO151Cuba NC_NC00-10:81 n/a n/a n/a
csISO153GOST1976874 GOST_19768-74 n/a n/a n/a
csISO158Lap latin-lap n/a n/a n/a
csISO15Italian IT n/a n/a n/a
csISO16Portuguese PT n/a n/a n/a
csISO17Spanish ES n/a n/a n/a
csISO18Greek7Old greek7-old n/a n/a n/a
csISO19LatinGreek latin-greek n/a n/a n/a
csISO2022CNEXT ISO-2022-CN-EXT n/a n/a n/a
csISO2033 ISO_2033-1983 n/a n/a n/a
csISO21German DIN_66003 n/a n/a n/a
csISO25French NF_Z_62-010_(1973) n/a n/a n/a
csISO27LatinGreek1 Latin-greek-1 n/a n/a n/a
csISO47BSViewdata BS_viewdata n/a n/a n/a
csISO49INIS INIS n/a n/a n/a
csISO4UnitedKingdom BS_4730 n/a n/a n/a
csISO50INIS8 INIS-8 n/a n/a n/a
csISO51INISCyrillic INIS-cyrillic n/a n/a n/a
csISO54271981 ISO_5427:1981 n/a n/a n/a
csISO5427Cyrillic ISO_5427 n/a n/a n/a
csISO5428Greek ISO_5428:1980 n/a n/a n/a
csISO57GB1988 GB_1988-80 n/a n/a n/a
csISO60DanishNorwegian NS_4551-1 n/a n/a n/a
csISO60Norwegian1 NS_4551-1 n/a n/a n/a
csISO61Norwegian2 NS_4551-2 n/a n/a n/a
csISO646basic1983 ISO_646.basic:1983 n/a n/a n/a
csISO646Danish DS_2089 n/a n/a n/a
csISO6937Add ISO_6937-2-25 n/a n/a n/a
csISO69French NF_Z_62-010 n/a n/a n/a
csISO70VideotexSupp1 videotex-suppl n/a n/a n/a
csISO84Portuguese2 PT2 n/a n/a n/a
csISO85Spanish2 ES2 n/a n/a n/a
csISO86Hungarian MSZ_7795.3 n/a n/a n/a
csISO885913 ISO-8859-13 n/a n/a n/a
csISO885914 ISO-8859-14 n/a n/a n/a
csISO885915 ISO-8859-15 n/a n/a n/a
csISO885916 ISO-8859-16 n/a n/a n/a
csISO8859Supp ISO_8859-supp n/a n/a n/a
csISO88Greek7 greek7 n/a n/a n/a
csISO89ASMO449 ASMO_449 n/a n/a n/a
csISO90 iso-ir-90 n/a n/a n/a
csISO91JISC62291984a JIS_C6229-1984-a n/a n/a n/a
csISO92JISC62991984b JIS_C6229-1984-b n/a n/a n/a
csISO93JIS62291984badd JIS_C6229-1984-b-add n/a n/a n/a
csISO94JIS62291984hand JIS_C6229-1984-hand n/a n/a n/a
csISO95JIS62291984handadd JIS_C6229-1984-hand-add n/a n/a n/a
csISO96JISC62291984kana JIS_C6229-1984-kana n/a n/a n/a
csISO99NAPLPS ANSI_X3.110-1983 n/a n/a n/a
csISOTextComm ISO_6937-2-add n/a n/a n/a
csKOI7switched KOI7-switched n/a n/a n/a
csKOI8U KOI8-U n/a n/a n/a
csKSC5636 KSC5636 n/a n/a n/a
csKZ1048 KZ-1048 n/a n/a n/a
csMicrosoftPublishing Microsoft-Publishing n/a n/a n/a
csMnem MNEM n/a n/a n/a
csMnemonic MNEMONIC n/a n/a n/a
CSN_369103 CSN_369103 n/a n/a n/a
csNATSDANO NATS-DANO n/a n/a n/a
csNATSDANOADD NATS-DANO-ADD n/a n/a n/a
csNATSSEFI NATS-SEFI n/a n/a n/a
csNATSSEFIADD NATS-SEFI-ADD n/a n/a n/a
csOSDEBCDICDF03IRV OSD_EBCDIC_DF03_IRV n/a n/a n/a
csOSDEBCDICDF041 OSD_EBCDIC_DF04_1 n/a n/a n/a
csOSDEBCDICDF0415 OSD_EBCDIC_DF04_15 n/a n/a n/a
csPC8DanishNorwegian PC8-Danish-Norwegian n/a n/a n/a
csPC8Turkish PC8-Turkish n/a n/a n/a
csPTCP154 PTCP154 n/a n/a n/a
csSCSU SCSU n/a n/a n/a
csTIS620 TIS-620 n/a n/a n/a
csTSCII TSCII n/a n/a n/a
csUnicodeASCII ISO-10646-UCS-Basic n/a n/a n/a
csUnicodeIBM1261 ISO-Unicode-IBM-1261 n/a n/a n/a
csUnicodeIBM1264 ISO-Unicode-IBM-1264 n/a n/a n/a
csUnicodeIBM1265 ISO-Unicode-IBM-1265 n/a n/a n/a
csUnicodeIBM1268 ISO-Unicode-IBM-1268 n/a n/a n/a
csUnicodeIBM1276 ISO-Unicode-IBM-1276 n/a n/a n/a
csUnicodeJapanese ISO-10646-J-1 n/a n/a n/a
csUnicodeLatin1 ISO-10646-Unicode-Latin1 n/a n/a n/a
csUnknown8BiT UNKNOWN-8BIT n/a n/a n/a
csUSDK us-dk n/a n/a n/a
csUTF7 UTF-7 n/a n/a n/a
csUTF7IMAP UTF-7-IMAP n/a n/a n/a
csVenturaInternational Ventura-International n/a n/a n/a
csVenturaMath Ventura-Math n/a n/a n/a
csVenturaUS Ventura-US n/a n/a n/a
csVIQR VIQR n/a n/a n/a
cswindows1255 windows-1255 n/a n/a n/a
cswindows1256 windows-1256 n/a n/a n/a
cswindows1257 windows-1257 n/a n/a n/a
cswindows1258 windows-1258 n/a n/a n/a
cswindows874 windows-874 n/a n/a n/a
cuba NC_NC00-10:81 n/a n/a n/a
Cyrillic-Asian PTCP154 n/a n/a n/a
de DIN_66003 n/a n/a n/a
dec DEC-MCS n/a n/a n/a
DEC-MCS DEC-MCS n/a n/a n/a
DIN_66003 DIN_66003 n/a n/a n/a
dk DS_2089 n/a n/a n/a
dk-us dk-us n/a n/a n/a
DS2089 DS_2089 n/a n/a n/a
DS_2089 DS_2089 n/a n/a n/a
e13b ISO_2033-1983 n/a n/a n/a
EBCDIC-AT-DE EBCDIC-AT-DE n/a n/a n/a
EBCDIC-AT-DE-A EBCDIC-AT-DE-A n/a n/a n/a
EBCDIC-BE IBM274 n/a n/a n/a
EBCDIC-BR IBM275 n/a n/a n/a
EBCDIC-CA-FR EBCDIC-CA-FR n/a n/a n/a
ebcdic-cp-ar1 IBM420 n/a n/a n/a
ebcdic-cp-ar2 IBM918 n/a n/a n/a
ebcdic-cp-be IBM500 n/a n/a n/a
ebcdic-cp-ch IBM500 n/a n/a n/a
EBCDIC-CP-DK IBM277 n/a n/a n/a
ebcdic-cp-es IBM284 n/a n/a n/a
ebcdic-cp-fi IBM278 n/a n/a n/a
ebcdic-cp-fr IBM297 n/a n/a n/a
ebcdic-cp-gb IBM285 n/a n/a n/a
ebcdic-cp-gr IBM423 n/a n/a n/a
ebcdic-cp-he IBM424 n/a n/a n/a
ebcdic-cp-is IBM871 n/a n/a n/a
ebcdic-cp-it IBM280 n/a n/a n/a
EBCDIC-CP-NO IBM277 n/a n/a n/a
ebcdic-cp-roece IBM870 n/a n/a n/a
ebcdic-cp-se IBM278 n/a n/a n/a
ebcdic-cp-tr IBM905 n/a n/a n/a
ebcdic-cp-yu IBM870 n/a n/a n/a
EBCDIC-Cyrillic IBM880 n/a n/a n/a
ebcdic-de-273+euro IBM01141 n/a n/a n/a
ebcdic-dk-277+euro IBM01142 n/a n/a n/a
EBCDIC-DK-NO EBCDIC-DK-NO n/a n/a n/a
EBCDIC-DK-NO-A EBCDIC-DK-NO-A n/a n/a n/a
EBCDIC-ES EBCDIC-ES n/a n/a n/a
ebcdic-es-284+euro IBM01145 n/a n/a n/a
EBCDIC-ES-A EBCDIC-ES-A n/a n/a n/a
EBCDIC-ES-S EBCDIC-ES-S n/a n/a n/a
ebcdic-fi-278+euro IBM01143 n/a n/a n/a
EBCDIC-FI-SE EBCDIC-FI-SE n/a n/a n/a
EBCDIC-FI-SE-A EBCDIC-FI-SE-A n/a n/a n/a
EBCDIC-FR EBCDIC-FR n/a n/a n/a
ebcdic-fr-297+euro IBM01147 n/a n/a n/a
ebcdic-gb-285+euro IBM01146 n/a n/a n/a
EBCDIC-INT IBM038 n/a n/a n/a
ebcdic-international-500+euro IBM01148 n/a n/a n/a
ebcdic-is-871+euro IBM01149 n/a n/a n/a
EBCDIC-IT EBCDIC-IT n/a n/a n/a
ebcdic-it-280+euro IBM01144 n/a n/a n/a
EBCDIC-JP-E IBM281 n/a n/a n/a
EBCDIC-JP-kana IBM290 n/a n/a n/a
ebcdic-Latin9--euro IBM00924 n/a n/a n/a
ebcdic-no-277+euro IBM01142 n/a n/a n/a
EBCDIC-PT EBCDIC-PT n/a n/a n/a
ebcdic-se-278+euro IBM01143 n/a n/a n/a
EBCDIC-UK EBCDIC-UK n/a n/a n/a
EBCDIC-US EBCDIC-US n/a n/a n/a
ebcdic-us-37+euro IBM01140 n/a n/a n/a
ECMA-cyrillic ECMA-cyrillic n/a n/a n/a
ES ES n/a n/a n/a
ES2 ES2 n/a n/a n/a
Extended_UNIX_Code_Fixed_Width_for_Japanese Extended_UNIX_Code_Fixed_Width_for_Japanese n/a n/a n/a
FI SEN_850200_B n/a n/a n/a
fr NF_Z_62-010 n/a n/a n/a
gb BS_4730 n/a n/a n/a
GB_1988-80 GB_1988-80 n/a n/a n/a
GOST_19768-74 GOST_19768-74 n/a n/a n/a
greek-ccitt greek-ccitt n/a n/a n/a
greek7 greek7 n/a n/a n/a
greek7-old greek7-old n/a n/a n/a
HP-DeskTop HP-DeskTop n/a n/a n/a
HP-Legal HP-Legal n/a n/a n/a
HP-Math8 HP-Math8 n/a n/a n/a
HP-Pi-font HP-Pi-font n/a n/a n/a
hp-roman8 hp-roman8 n/a n/a n/a
hu MSZ_7795.3 n/a n/a n/a
IBM-1047 IBM1047 n/a n/a n/a
IBM-Symbols IBM-Symbols n/a n/a n/a
IBM-Thai IBM-Thai n/a n/a n/a
IBM00858 IBM00858 n/a n/a n/a
IBM00924 IBM00924 n/a n/a n/a
IBM01140 IBM01140 n/a n/a n/a
IBM01141 IBM01141 n/a n/a n/a
IBM01142 IBM01142 n/a n/a n/a
IBM01143 IBM01143 n/a n/a n/a
IBM01144 IBM01144 n/a n/a n/a
IBM01145 IBM01145 n/a n/a n/a
IBM01146 IBM01146 n/a n/a n/a
IBM01147 IBM01147 n/a n/a n/a
IBM01148 IBM01148 n/a n/a n/a
IBM01149 IBM01149 n/a n/a n/a
IBM038 IBM038 n/a n/a n/a
IBM1026 IBM1026 n/a n/a n/a
IBM1047 IBM1047 n/a n/a n/a
IBM273 IBM273 n/a n/a n/a
IBM274 IBM274 n/a n/a n/a
IBM275 IBM275 n/a n/a n/a
IBM277 IBM277 n/a n/a n/a
IBM278 IBM278 n/a n/a n/a
IBM280 IBM280 n/a n/a n/a
IBM281 IBM281 n/a n/a n/a
IBM284 IBM284 n/a n/a n/a
IBM285 IBM285 n/a n/a n/a
IBM290 IBM290 n/a n/a n/a
IBM297 IBM297 n/a n/a n/a
IBM420 IBM420 n/a n/a n/a
IBM423 IBM423 n/a n/a n/a
IBM424 IBM424 n/a n/a n/a
IBM500 IBM500 n/a n/a n/a
IBM868 IBM868 n/a n/a n/a
IBM870 IBM870 n/a n/a n/a
IBM871 IBM871 n/a n/a n/a
IBM880 IBM880 n/a n/a n/a
IBM891 IBM891 n/a n/a n/a
IBM903 IBM903 n/a n/a n/a
IBM904 IBM904 n/a n/a n/a
IBM905 IBM905 n/a n/a n/a
IBM918 IBM918 n/a n/a n/a
IEC_P27-1 IEC_P27-1 n/a n/a n/a
INIS INIS n/a n/a n/a
INIS-8 INIS-8 n/a n/a n/a
INIS-cyrillic INIS-cyrillic n/a n/a n/a
INVARIANT INVARIANT n/a n/a n/a
ISO-10646 ISO-10646-Unicode-Latin1 n/a n/a n/a
ISO-10646-J-1 ISO-10646-J-1 n/a n/a n/a
ISO-10646-UCS-Basic ISO-10646-UCS-Basic n/a n/a n/a
ISO-10646-Unicode-Latin1 ISO-10646-Unicode-Latin1 n/a n/a n/a
ISO-10646-UTF-1 ISO-10646-UTF-1 n/a n/a n/a
ISO-11548-1 ISO-11548-1 n/a n/a n/a
iso-celtic ISO-8859-14 n/a n/a n/a
iso-ir-10 SEN_850200_B n/a n/a n/a
iso-ir-102 T.61-7bit n/a n/a n/a
iso-ir-103 T.61-8bit n/a n/a n/a
iso-ir-11 SEN_850200_C n/a n/a n/a
iso-ir-111 ECMA-cyrillic n/a n/a n/a
iso-ir-121 CSA_Z243.4-1985-1 n/a n/a n/a
iso-ir-122 CSA_Z243.4-1985-2 n/a n/a n/a
iso-ir-123 CSA_Z243.4-1985-gr n/a n/a n/a
iso-ir-128 T.101-G2 n/a n/a n/a
iso-ir-13 JIS_C6220-1969-jp n/a n/a n/a
iso-ir-139 CSN_369103 n/a n/a n/a
iso-ir-14 JIS_C6220-1969-ro n/a n/a n/a
iso-ir-141 JUS_I.B1.002 n/a n/a n/a
iso-ir-142 ISO_6937-2-add n/a n/a n/a
iso-ir-143 IEC_P27-1 n/a n/a n/a
iso-ir-146 JUS_I.B1.003-serb n/a n/a n/a
iso-ir-147 JUS_I.B1.003-mac n/a n/a n/a
iso-ir-15 IT n/a n/a n/a
iso-ir-150 greek-ccitt n/a n/a n/a
iso-ir-151 NC_NC00-10:81 n/a n/a n/a
iso-ir-152 ISO_6937-2-25 n/a n/a n/a
iso-ir-153 GOST_19768-74 n/a n/a n/a
iso-ir-154 ISO_8859-supp n/a n/a n/a
iso-ir-155 ISO_10367-box n/a n/a n/a
iso-ir-158 latin-lap n/a n/a n/a
iso-ir-16 PT n/a n/a n/a
iso-ir-17 ES n/a n/a n/a
iso-ir-18 greek7-old n/a n/a n/a
iso-ir-19 latin-greek n/a n/a n/a
iso-ir-199 ISO-8859-14 n/a n/a n/a
iso-ir-21 DIN_66003 n/a n/a n/a
iso-ir-25 NF_Z_62-010_(1973) n/a n/a n/a
iso-ir-27 Latin-greek-1 n/a n/a n/a
iso-ir-37 ISO_5427 n/a n/a n/a
iso-ir-4 BS_4730 n/a n/a n/a
iso-ir-47 BS_viewdata n/a n/a n/a
iso-ir-49 INIS n/a n/a n/a
iso-ir-50 INIS-8 n/a n/a n/a
iso-ir-51 INIS-cyrillic n/a n/a n/a
iso-ir-54 ISO_5427:1981 n/a n/a n/a
iso-ir-55 ISO_5428:1980 n/a n/a n/a
iso-ir-57 GB_1988-80 n/a n/a n/a
iso-ir-60 NS_4551-1 n/a n/a n/a
iso-ir-61 NS_4551-2 n/a n/a n/a
iso-ir-69 NF_Z_62-010 n/a n/a n/a
iso-ir-70 videotex-suppl n/a n/a n/a
iso-ir-8-1 NATS-SEFI n/a n/a n/a
iso-ir-8-2 NATS-SEFI-ADD n/a n/a n/a
iso-ir-84 PT2 n/a n/a n/a
iso-ir-85 ES2 n/a n/a n/a
iso-ir-86 MSZ_7795.3 n/a n/a n/a
iso-ir-87 JIS_C6226-1983 n/a n/a n/a
iso-ir-88 greek7 n/a n/a n/a
iso-ir-89 ASMO_449 n/a n/a n/a
iso-ir-9-1 NATS-DANO n/a n/a n/a
iso-ir-9-2 NATS-DANO-ADD n/a n/a n/a
iso-ir-90 iso-ir-90 n/a n/a n/a
iso-ir-91 JIS_C6229-1984-a n/a n/a n/a
iso-ir-92 JIS_C6229-1984-b n/a n/a n/a
iso-ir-93 JIS_C6229-1984-b-add n/a n/a n/a
iso-ir-94 JIS_C6229-1984-hand n/a n/a n/a
iso-ir-95 JIS_C6229-1984-hand-add n/a n/a n/a
iso-ir-96 JIS_C6229-1984-kana n/a n/a n/a
iso-ir-98 ISO_2033-1983 n/a n/a n/a
iso-ir-99 ANSI_X3.110-1983 n/a n/a n/a
ISO-Unicode-IBM-1261 ISO-Unicode-IBM-1261 n/a n/a n/a
ISO-Unicode-IBM-1264 ISO-Unicode-IBM-1264 n/a n/a n/a
ISO-Unicode-IBM-1265 ISO-Unicode-IBM-1265 n/a n/a n/a
ISO-Unicode-IBM-1268 ISO-Unicode-IBM-1268 n/a n/a n/a
ISO-Unicode-IBM-1276 ISO-Unicode-IBM-1276 n/a n/a n/a
ISO5427Cyrillic1981 ISO_5427:1981 n/a n/a n/a
ISO646-CA CSA_Z243.4-1985-1 n/a n/a n/a
ISO646-CA2 CSA_Z243.4-1985-2 n/a n/a n/a
ISO646-CN GB_1988-80 n/a n/a n/a
ISO646-CU NC_NC00-10:81 n/a n/a n/a
ISO646-DE DIN_66003 n/a n/a n/a
ISO646-DK DS_2089 n/a n/a n/a
ISO646-ES ES n/a n/a n/a
ISO646-ES2 ES2 n/a n/a n/a
ISO646-FI SEN_850200_B n/a n/a n/a
ISO646-FR NF_Z_62-010 n/a n/a n/a
ISO646-FR1 NF_Z_62-010_(1973) n/a n/a n/a
ISO646-GB BS_4730 n/a n/a n/a
ISO646-HU MSZ_7795.3 n/a n/a n/a
ISO646-IT IT n/a n/a n/a
ISO646-JP JIS_C6220-1969-ro n/a n/a n/a
ISO646-JP-OCR-B JIS_C6229-1984-b n/a n/a n/a
ISO646-KR KSC5636 n/a n/a n/a
ISO646-NO NS_4551-1 n/a n/a n/a
ISO646-NO2 NS_4551-2 n/a n/a n/a
ISO646-PT PT n/a n/a n/a
ISO646-PT2 PT2 n/a n/a n/a
ISO646-SE SEN_850200_B n/a n/a n/a
ISO646-SE2 SEN_850200_C n/a n/a n/a
ISO646-YU JUS_I.B1.002 n/a n/a n/a
iso8859-11 n/a windows-874 n/a n/a
iso8859-14 n/a ISO-8859-14 n/a n/a
iso885911 n/a windows-874 n/a n/a
iso885914 n/a ISO-8859-14 n/a n/a
ISO_10367-box ISO_10367-box n/a n/a n/a
ISO_11548-1 ISO-11548-1 n/a n/a n/a
ISO_2033-1983 ISO_2033-1983 n/a n/a n/a
ISO_5427 ISO_5427 n/a n/a n/a
ISO_5427:1981 ISO_5427:1981 n/a n/a n/a
ISO_5428:1980 ISO_5428:1980 n/a n/a n/a
ISO_646.basic:1983 ISO_646.basic:1983 n/a n/a n/a
ISO_6937-2-25 ISO_6937-2-25 n/a n/a n/a
ISO_6937-2-add ISO_6937-2-add n/a n/a n/a
ISO_8859-14 ISO-8859-14 n/a n/a n/a
ISO_8859-14:1998 ISO-8859-14 n/a n/a n/a
ISO_8859-supp ISO_8859-supp n/a n/a n/a
ISO_9036 ASMO_449 n/a n/a n/a
ISO_TR_11548-1 ISO-11548-1 n/a n/a n/a
IT IT n/a n/a n/a
JIS_C6220-1969 JIS_C6220-1969-jp n/a n/a n/a
JIS_C6220-1969-jp JIS_C6220-1969-jp n/a n/a n/a
JIS_C6220-1969-ro JIS_C6220-1969-ro n/a n/a n/a
JIS_C6229-1984-a JIS_C6229-1984-a n/a n/a n/a
JIS_C6229-1984-b JIS_C6229-1984-b n/a n/a n/a
JIS_C6229-1984-b-add JIS_C6229-1984-b-add n/a n/a n/a
JIS_C6229-1984-hand JIS_C6229-1984-hand n/a n/a n/a
JIS_C6229-1984-hand-add JIS_C6229-1984-hand-add n/a n/a n/a
JIS_C6229-1984-kana JIS_C6229-1984-kana n/a n/a n/a
jp JIS_C6220-1969-ro n/a n/a n/a
jp-ocr-a JIS_C6229-1984-a n/a n/a n/a
jp-ocr-b JIS_C6229-1984-b n/a n/a n/a
jp-ocr-b-add JIS_C6229-1984-b-add n/a n/a n/a
jp-ocr-hand JIS_C6229-1984-hand n/a n/a n/a
jp-ocr-hand-add JIS_C6229-1984-hand-add n/a n/a n/a
js JUS_I.B1.002 n/a n/a n/a
JUS_I.B1.002 JUS_I.B1.002 n/a n/a n/a
JUS_I.B1.003-mac JUS_I.B1.003-mac n/a n/a n/a
JUS_I.B1.003-serb JUS_I.B1.003-serb n/a n/a n/a
katakana JIS_C6220-1969-jp n/a n/a n/a
KOI7-switched KOI7-switched n/a n/a n/a
KOI8-E ECMA-cyrillic n/a n/a n/a
KSC5636 KSC5636 n/a n/a n/a
KZ-1048 KZ-1048 n/a n/a n/a
l8 ISO-8859-14 n/a n/a n/a
lap latin-lap n/a n/a n/a
latin-greek latin-greek n/a n/a n/a
Latin-greek-1 Latin-greek-1 n/a n/a n/a
latin-lap latin-lap n/a n/a n/a
latin1-2-5 ISO_8859-supp n/a n/a n/a
latin8 ISO-8859-14 n/a n/a n/a
macedonian JUS_I.B1.003-mac n/a n/a n/a
Microsoft-Publishing Microsoft-Publishing n/a n/a n/a
MNEM MNEM n/a n/a n/a
MNEMONIC MNEMONIC n/a n/a n/a
MSZ_7795.3 MSZ_7795.3 n/a n/a n/a
NAPLPS ANSI_X3.110-1983 n/a n/a n/a
NATS-DANO NATS-DANO n/a n/a n/a
NATS-DANO-ADD NATS-DANO-ADD n/a n/a n/a
NATS-SEFI NATS-SEFI n/a n/a n/a
NATS-SEFI-ADD NATS-SEFI-ADD n/a n/a n/a
NC_NC00-10:81 NC_NC00-10:81 n/a n/a n/a
NF_Z_62-010 NF_Z_62-010 n/a n/a n/a
NF_Z_62-010_(1973) NF_Z_62-010_(1973) n/a n/a n/a
no NS_4551-1 n/a n/a n/a
no2 NS_4551-2 n/a n/a n/a
NS_4551-1 NS_4551-1 n/a n/a n/a
NS_4551-2 NS_4551-2 n/a n/a n/a
OSD_EBCDIC_DF03_IRV OSD_EBCDIC_DF03_IRV n/a n/a n/a
OSD_EBCDIC_DF04_1 OSD_EBCDIC_DF04_1 n/a n/a n/a
OSD_EBCDIC_DF04_15 OSD_EBCDIC_DF04_15 n/a n/a n/a
PC-Multilingual-850+euro IBM00858 n/a n/a n/a
PC8-Danish-Norwegian PC8-Danish-Norwegian n/a n/a n/a
PC8-Turkish PC8-Turkish n/a n/a n/a
PT PT n/a n/a n/a
PT154 PTCP154 n/a n/a n/a
PT2 PT2 n/a n/a n/a
PTCP154 PTCP154 n/a n/a n/a
r8 hp-roman8 n/a n/a n/a
ref ISO_646.basic:1983 n/a n/a n/a
replacement n/a replacement n/a n/a
RK1048 KZ-1048 n/a n/a n/a
roman8 hp-roman8 n/a n/a n/a
SCSU SCSU n/a n/a n/a
se SEN_850200_B n/a n/a n/a
se2 SEN_850200_C n/a n/a n/a
SEN_850200_B SEN_850200_B n/a n/a n/a
SEN_850200_C SEN_850200_C n/a n/a n/a
serbian JUS_I.B1.003-serb n/a n/a n/a
ST_SEV_358-88 GOST_19768-74 n/a n/a n/a
STRK1048-2002 KZ-1048 n/a n/a n/a
T.101-G2 T.101-G2 n/a n/a n/a
T.61 T.61-8bit n/a n/a n/a
T.61-7bit T.61-7bit n/a n/a n/a
T.61-8bit T.61-8bit n/a n/a n/a
TSCII TSCII n/a n/a n/a
uk BS_4730 n/a n/a n/a
UNKNOWN-8BIT UNKNOWN-8BIT n/a n/a n/a
us-dk us-dk n/a n/a n/a
UTF-7-IMAP UTF-7-IMAP n/a n/a n/a
Ventura-International Ventura-International n/a n/a n/a
Ventura-Math Ventura-Math n/a n/a n/a
Ventura-US Ventura-US n/a n/a n/a
videotex-suppl videotex-suppl n/a n/a n/a
VIQR VIQR n/a n/a n/a
x-cp1255 n/a windows-1255 n/a n/a
x-cp1256 n/a windows-1256 n/a n/a
x-cp1257 n/a windows-1257 n/a n/a
x-cp1258 n/a windows-1258 n/a n/a
x0201-7 JIS_C6220-1969-jp n/a n/a n/a
yu JUS_I.B1.002 n/a n/a n/a

What's changed from legacy API?

  • Some names that are not supported by CF are available conforming to latest standard. And vice versa.
  • String.Encoding(name: "Shift_JIS") returns .shiftJIS.
  • Inconsistency about ISO-8859-* is fixed.
    • For example: "ISO-8859-1-Windows-3.1-Latin-1" vs "csWindows31Latin1"

Source compatibility

These changes proposed here are only additive. However, care must be taken if migrating from CF APIs.

Implications on adoption

This feature can be freely adopted and un-adopted in source code with no deployment constraints and without affecting source compatibility.

Future directions

More encodings and their names may become available on swift-foundation.

Alternatives considered

Don't compromise

We may be able to provide the computed properties and the initializers separately for IANA charsets and WHATWG encodings.

That is:

extension String.Encoding {
    /// Returns the name of IANA charset.
    var charsetName: String? { get }

    /// Returns the name of WHATWG encoding.
    var standardName: String? { get }

    /// Creates an instance from the name of IANA charset.
    init?(charsetName: String)

    /// Creates an instance from the name of WHATWG encoding.
    init?(standardName: String)
}

Acknowledgments

Thanks to everyone who gave me advices on the pitch thread; especially to @benrimmington and @xwu.

Footnotes

  1. You may just want to parse an old XML document on local.

  2. The Encoding Standard defines ISO-8859-1, ISO-8859-9, and ISO-8859-11 as mere labels of other encodings. That doesn't fit into even current Swift APIs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment