Swift’s String and Character types provide a fast, Unicode-compliant way to work with text in your code.
Swift’s native String type is built from Unicode scalar values. A Unicode scalar is a unique 21-bit number for a character or modifier
Every instance of Swift’s Character type represents a single extended grapheme cluster. An extended grapheme cluster is a sequence of one or more Unicode scalars that (when combined) produce a single human-readable character.
Mark Bestley to mailing list, 15th Dec 2015
The Swift code (well for the next version) is open source see https://github.com/apple/swift-corelibs-foundation for the Foundation lib which includes Strings. Foundation is being rewritten in Swift rather than Objective C so should be Swift->C but I wonder if it is really clean yet, i.e. do they need all the current code.
A quick scan gives the low level as Stringing (same as current OSX_.
The encodings and conversions seem to use ICU to do the work (which is UTF-16 based)
Also in NSString.swift is the line public typealias unichar = UInt16