在String
上,我可以使用utf8
和count
来获取使用UTF-8编码对字符串进行编码所需的字节数:
"a".utf8.count // 1
"チャオ".utf8.count // 9
"チ".utf8.count // 3
但是,我没有在单个Character
值上看到等效方法。要获得将字符串中的字符编码为UTF-8所需的字节数,我可以逐个字符地迭代,将字符转换为字符串,并获取该字符串的utf8.count
:
"チャオ".characters.forEach({print(String($0).utf8.count)}) // 3, 3, 3
这似乎不必要地冗长。有没有办法在Swift中获得Character
的UTF-8编码?
答案 0 :(得分:3)
Character
没有直接(公共)访问其UTF-8表示形式。
Character.swift中有一些内部方法处理UTF-8字节,但公共内容是在
StringUTF8.swift中的String.UTF8View
。
因此String(myChar).utf8.count
是获得的正确方法
UTF-8表示字符的长度。