【发布时间】:2016-03-28 07:39:01
【问题描述】:
我们发现了一个问题,有些表情符号有两个 utf-8 编码,例如:
emoji unicode utf-8 another utf-8
???? U+1F601 \xf0\x9f\x98\x81 \xed\xa0\xbd\xed\xb8\x81
但是 ios 语言无法解码其他类型的 utf-8,所以在我从 utf-8 解码字符串时会出错。
在我找到的所有文档中,我只能找到一种用于表情符号的 utf-8 代码,而在哪里可以找到另一种。
我参考的文件包括:
但是在一个网络工具bianma中,这两种utf-8代码都可以正确转换成emoji。
所以,我的问题是:
为什么一个 emoji 有两种 utf-8 编码?
哪里有包含这两种 utf-8 编码的文档?
如何在ios语言中使用NSString从utf-8正确转换字符串?
【问题讨论】:
-
这让我很感兴趣,因为我的第一个想法是长 UTF-8 表示是两个 UTF-8 块。事实证明,UTF-8 有两种变体,CESU-8 和 Modified UTF-8,它们编码 UTF-16 样式。如果没有合适的 iOS/Objective-C 原生解码器,你或许可以使用这篇文章iphonedevsdk.com/forum/iphone-sdk-development/… 编写解码器。
-
@AlastairMcCormack 这就是我认为的答案。您应该将其发布为答案。
-
@user692793 请不要将文本作为图像发布,尤其是代码或输出。
-
谢谢@roeland。我认为正确的答案应该包含一些工作代码,但由于我不是 Objective-C 编码器,所以我会把它留给其他人来获得荣耀:)
标签: ios unicode utf-8 nsstring emoji