【问题标题】:Convert Unicode Emoji to NSString (Not \ue415 format)将 Unicode Emoji 转换为 NSString(非 \ue415 格式)
【发布时间】:2014-09-02 08:12:16
【问题描述】:

我正在尝试将表情符号转换为 NSString。我之前在NSString to Emoji Unicode 询问了一个关于如何做相反的事情(将 NSString 转换为 unicode)的问题。我想也许最好在这里提出一个新问题。

如何将包含表情符号 (????) 的 NSString 转换为包含这种格式 (U0001F603) 的 unicode 的 NSString?

这个问题基本上是对上一页解决方案的逆向工程。问题是该项目不使用 \ue415 格式,而是使用 U0001F603 格式。

根据评论编辑:
2014-07-11 11:37:19.448 表情[******] unicode: ????

unicode = [NSString stringWithFormat:@"%@\\UFE0E", unicode];

2014-07-11 11:37:19.449 表情[******] unicode: ????\UFE0E

第二条评论回复 我不完全确定我是否遵循您的意思,即我没有添加第一行代码。我希望我没有说不清楚。为了尝试更具体地了解我想要的内容,我登录了您的代码,然后记录了我希望获得的内容:

NSString *first = @"????";
NSString *second = @"????\\UFE0E";
NSString *third = @"U0001F603\\UFE0E";

2014-07-11 12:00:45.815 emoticon[******] first: ????, second: ????\UFE0E, third: U0001F603\UFE0E
2014-07-11 12:00:45.816 emoticon[******] desiredString: U0001F603

我希望通过将表情符号转换为所需的字符串来生成所需的字符串。

第三条评论回复

【问题讨论】:

  • 哦!等待! %@\ 是该图标的表情符号代码,您正在根据它生成该图标吗? (我现在不在我的 Mac 上,这就是为什么我不能自己尝试而是询问)。
  • 是的,%@ 包含实际的 ????表情符号在里面。它是 ????我正在尝试将其转换为原始 NSString。变量 unicode 是 NSString 的。我希望对话允许将变量 unicode 记录为 U0001F603 而不是 ????。
  • 好的。我现在明白你了。让我想想……
  • 您在字符代码之间添加了两个反斜杠。只添加一个。

标签: ios unicode hex emoji


【解决方案1】:

这是一个“伪代码”(JavaScript,你可以在浏览器的控制台中运行它) ..用于相反的方向。

String.fromCharCode(
((0x1F603 - 0x10000) >> 10) | 0xD800
,
((0x1F603 - 0x10000) % 0x400) | 0xDC00
)

=>>"?"

只需反转字节操作,然后零填充


如果你是一名程序员,这对你来说应该很容易。


..give a man a fish...



来源:JavaScript Ninja - Easy Unicode Emoji Generator ???

【讨论】:

    【解决方案2】:

    您需要在所有 Unicode 字符的末尾使用 转义字符 \U0000FE0E 以使其跳过表情符号并显示正确的 Unicode 字符。

    代码如下:

    @"?"        //This shows the colorful emoji icon.
    @"?\U0000FE0E"  //This shows the good old Unicode character.
    

    您也可以将其添加到字符代码中:

    @"U0001F603\U0000FE0E"
    

    【讨论】:

    • 谢谢,但此时我已经可以制作表情符号了。我要做的是对其进行编码,以便将现有的表情符号转换回原始 NSString。
    • 这正是我解释的。如果您将 \UFE0E 添加到现有表情符号中,它会将其还原为 Unicode 字符。
    • 你在哪里添加这个?请编辑您的答案并在此处显示代码。
    • 见我上面的评论。我想我现在很困惑!另外我认为您还没有添加代码的第一行。
    • 用新代码再次更新问题。男人越来越丑了哈哈。如果我们能找出答案,我会好好清理它。
    猜你喜欢
    • 2021-08-16
    • 2014-08-30
    • 1970-01-01
    • 2018-05-09
    • 2021-01-28
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多