Unicode

設定值

直接使用 Unicode

var str: String = "I want to visit 北京, Москва, मुंबई, القاهرة, and 서울시. 😊"
var character: Character = "🌍"

使用十六進位制值

var str: String = "\u{61}\u{5927}\u{1F34E}\u{3C0}" // a 大🍎π
var character: Character = "\u{65}\u{301}" // é = "e" + accent mark

請注意,Swift Character 可以由多個 Unicode 程式碼點組成,但看起來是單個字元。這稱為擴充套件字形叢集。

轉換

字串 - >十六進位制

// Accesses views of different Unicode encodings of `str`
str.utf8
str.utf16
str.unicodeScalars // UTF-32

十六進位制 - >字串

let value0: UInt8 = 0x61
let value1: UInt16 = 0x5927
let value2: UInt32 = 0x1F34E

let string0 = String(UnicodeScalar(value0)) // a
let string1 = String(UnicodeScalar(value1)) // 大
let string2 = String(UnicodeScalar(value2)) // 🍎

// convert hex array to String
let myHexArray = [0x43, 0x61, 0x74, 0x203C, 0x1F431] // an Int array
var myString = ""
for hexValue in myHexArray {
    myString.append(UnicodeScalar(hexValue))
}
print(myString) // Cat‼🐱

請注意,對於 UTF-8 和 UTF-16,轉換並不總是那麼容易,因為像表情符號這樣的東西不能用單個 UTF-16 值編碼。它需要一個代理對。