Ios 获取UTF8中字符串的长度
如何获取UTF-8编码形式(PHP的Ios 获取UTF8中字符串的长度,ios,swift,Ios,Swift,如何获取UTF-8编码形式(PHP的mb_strlen(..,'UTF-8')等效格式)字符串的长度(而不是字节数) 我尝试了string.characters.count,但它没有返回特定字符(如表情符号)的正确长度 例如: let s = "✌You can access the UTF-8 encoding of a string with the .utf8 property. Use count on that to get the number of UTF-8 code units
mb_strlen(..,'UTF-8')
等效格式)字符串的长度(而不是字节数)
我尝试了string.characters.count
,但它没有返回特定字符(如表情符号)的正确长度
例如:
let s = "✌You can access the UTF-8 encoding of a string with the .utf8
property. Use count
on that to get the number of UTF-8 code units in the string:
let string = "\u{1f603}" // One of the smiley face emojis...
print(string.utf8.count) // prints "4"
s=”✌ 您可以使用.utf8
属性访问字符串的UTF-8编码。使用count
获取字符串中的UTF-8编码单元数:
let s = "✌let str = "ačŘ"
print("str has \(str.characters.count) characters") // 3
print("and \(str.utf8.count) bytes as encoded in UTF-8") // 5
根据您编辑的问题,您可能要查找的是用于编码字符串的UnicodeScalar
s的编号。您可以使用UnicodeScalar
属性访问该编号:
s=”✌ 您可以使用.utf8
属性访问字符串的UTF-8编码。使用count
获取字符串中UTF-8代码单元的数量:
let s = "✌let str = "ačŘ"
print("str has \(str.characters.count) characters") // 3
print("and \(str.utf8.count) bytes as encoded in UTF-8") // 5
根据您编辑的问题,您可能要查找的是用于编码字符串的UnicodeScalar
s的数量。您可以使用unicodeScalars
属性访问该属性:
s=”✌
更新(基于您的笔记)
s=”✌
更新(基于您的笔记)
s=”✌你能给出一些输入/输出组合,比如“abc”->3,“someUtf-8String”->123来验证我们的解决方案吗?你可以使用string.utf8.count获得UTF-8计数。你可以使用:array(string.utf8)获得UTF-8代码单元数组本身@luk2302添加了一个示例。请参阅关于字符与Unicode标量、UTF-16与UTF-8的比较。您能否给出一些输入/输出组合,如“abc”->3、“someUtf-8String”->123,以验证我们的解决方案!?您可以使用string.utf8.count获得UTF-8计数。您可以使用:array(string.utf8)获得UTF-8代码单元数组本身@luk2302添加了一个示例。请参阅关于字符与Unicode标量与UTF-16与UTF-8的比较。我想你误解了我的问题。我用一个示例进行了编辑。你问了如何获取UTF-8编码形式的字符串长度。这与用于编码字符串的字节数相同。如果这不是你要问的,请编辑你的问题n、 它与UTF-8无关?我很困惑。我实际上是在寻找PHP的mb_strlen(……‘UTF-8’)等效。我想你误解了我的问题。我用一个例子进行了编辑。你问如何获得UTF-8编码形式的字符串长度。这与用于编码字符串的字节数相同。如果这不是你要问的,那么请编辑你的问题。它与UTF-8无关?我很困惑。我实际上在寻找PHP's mb_strlen(..,'UTF-8')等效。我想你误解了我的问题。我已经用一个示例进行了编辑。让s='✌我不明白你在说什么。我知道是10个字节.characters.count
打印2,但我想要的值是3。如果有2个字符,为什么要3?:-)看看罗曼的答案!!!s、 计算并检查文档中字符、unicode标量和字节之间的差异:-)我想你误解了我的问题。我用一个例子进行了编辑。让我们=”✌我不明白你在说什么。我知道是10个字节。.characters.count
打印2,但我想要的值是3。如果有2个字符,为什么要3?:-)见Roman的答案!!!s.unicodeScalars.count并检查文档中字符、unicode标量和字节之间的差异:-)