- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是故事。我正在使用 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/
我使用这段代码从 sqlite 数据库中读取数据: keyFromSql = [NSString stringWithCString:(char *)sqlite3_column_text(prepa
我在 stringWithCString 中遇到内存泄漏,有人能在 stringWithCstring 函数中找到内存泄漏吗? SomeView *detailViewController = [[S
这是故事。我正在使用 C 库进行数据传输,除了某些表情符号外,其他都运行良好。对于接收方来说,接收到的消息是char *message,为此可以使用“printf”打印出正确的东西。但是当使用 str
假设我从某个函数中获取了一个 C 字符串: char * mystring = SomeCFunction(...); 我拥有这个字符串(我负责在完成后释放它)。 如果在 Objective-C 中,
我知道在 SQLite 中更改 stringWithCString 时如何处理这个问题...您只需 stringWithUTF8String 即可。这与 sysctlbyname 返回的 char *
encoding:1 是什么意思,可以传递哪些其他值?请说明参数的含义,谢谢。 - (void)enterInfo { NSLog(@"What is the first name?");
我正在创建一个用于执行 shell 命令的方法。它看起来像这样: NSString *cShellStr(NSString *command, int maxBufferSize) { if
我正在使用 AsyncSocket,其中 AsyncSocket 对象每当从远程端接收数据时都会调用下面的委托(delegate)方法: - (void)onSocket:(AsyncSocket*)
我是一名优秀的程序员,十分优秀!