gpt4 book ai didi

ios - stringWithCString :encoding: returned nil, 当输入的cstring包含emoji时

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:51 26 4
gpt4 key购买 nike

这是故事。我正在使用 C 库进行数据传输,除了某些表情符号外,其他都运行良好。对于接收方来说,接收到的消息是char *message,为此可以使用“printf”打印出正确的东西。但是当使用 stringWithCString:encoding:(或 stringWithUTF8String: 等)时,它会为某些表情符号返回 nil。

所以,我打印出每个字符,这里是成功的表情符号:

"\xe2\x9a\xbd"

"\xe2\x9a\xbe\xef\xb8\x8f"

"\xe2\x98\x81\xef\xb8\x8f"

但是失败的表情符号:

"\xed\xa0\xbc\xed\xbe\x82"

"\xed\xa0\xbc\xed\xbf\x80"

"\xed\xa0\xbc\xed\xbc\x88"

一直卡在这几天。

有什么想法吗?

非常感谢!!

最佳答案

这是因为您的字节不是有效的 UTF-8 编码字符串。根据UTF-8 , "\xed\xa0\xbc"编码 Unicode 代码点 U+D83C。这是高代理 block 中的代码点。代理项不是有效字符,保留用于 UTF-16 目的。 UTF-8 对此类代码点进行编码是无效的。

关于ios - stringWithCString :encoding: returned nil, 当输入的cstring包含emoji时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19399842/

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