Swift如何将字符串转换为UTF-8表示形式?

时间:2018-11-17 11:34:43

标签: ios swift utf-8

Swift文档讨论以下代码:

let dogString = "Dog‼"
for codeUnit in dogString.utf8 {
    print("\(codeUnit) ", terminator: "")
}
print("")
// Prints "68 111 103 226 128 188 240 159 144 182 ”

然后它提到:

  

“接下来的三个十进制codeUnit值(226、128、188)是DOUBLE EXCLAMATION MARK字符的三字节UTF-8表示形式。”

但是如何获得(226,128,188)的值?幕后进行了什么计算?

1 个答案:

答案 0 :(得分:0)

字符串中的第四个字符是double exclamation mark。这是Unicode代码点U + 203C。

在UTF-8中,此代码点被转换为三个代码单元(在这种情况下为字节)的序列,即226、128、188。

Wikipedia page for UTF-8描述了编码。特别看一下带有欧元符号(€)的示例,该示例也转换为三字节序列。