gpt4 book ai didi

objective-c - "NSString stringWithUTF8String:"过于敏感

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:39 32 4
gpt4 key购买 nike

我正在使用像 NSString 这样的高级 Cocoa 功能进行一些字符串操作。和 NSData而不是深入研究 C 级的事情,比如处理 char 的数组

出于对它的热爱,+[NSString stringWithUTF8String:]有时返回 nil在用 -[NSString UTF8String] 创建的完美字符串上首先。人们会假设当输入格式错误时会发生这种情况。这是一个失败的输入示例,以十六进制表示:

55 6B 66 51 35 59 4A 5C 6A 60 40 33 5F 45 58 60 9D 47 3F 6E 5E 
60 59 34 58 68 41 4B 61 4E 3F 41 46 00

和 ASCII:

UkfQ5YJ\j`@3_EX`G?n^`Y4XhAKaN?AF

这是一个随机生成的字符串,用于测试我的子程序。

char * buffer = [randomNSString UTF8String];
// .... doing things .... in the end, buffer is the same as before
NSString * result = [NSString stringWithUTF8String:buffer];
// yields nil

编辑:以防万一有人没有理解隐含的问题,这里是 -v 模式:

为什么 [NSString stringWithUTF8String:] 有时会返回 nil在一个完美形成的 UTF8 字符串上?

最佳答案

对讲机是对的。 9d 以这种方式在 utf8 中是不合法的。最高位为 10 的 utf8 字节保留为连续字符,它们永远不会在没有超过一位前导位的前缀字符的情况下出现。

关于objective-c - "NSString stringWithUTF8String:"过于敏感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263300/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com