以字节为单位获取字符的UTF-8编码

时间:2016-06-27 22:01:27

标签: swift string utf-8 character-encoding character

String上,我可以使用utf8count来获取使用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编码?

1 个答案:

答案 0 :(得分:3)

Character没有直接(公共)访问其UTF-8表示形式。

Character.swift中有一些内部方法处理UTF-8字节,但公共内容是在 StringUTF8.swift中的String.UTF8View

因此String(myChar).utf8.count是获得的正确方法 UTF-8表示字符的长度。