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)的值?幕后进行了什么计算?
答案 0 :(得分:0)
字符串中的第四个字符是double exclamation mark。这是Unicode代码点U + 203C。
在UTF-8中,此代码点被转换为三个代码单元(在这种情况下为字节)的序列,即226、128、188。
Wikipedia page for UTF-8描述了编码。特别看一下带有欧元符号(€)的示例,该示例也转换为三字节序列。