Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取UTF8中字符串的长度_Ios_Swift - Fatal编程技术网

Ios 获取UTF8中字符串的长度

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

如何获取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 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标量和字节之间的差异:-)